H0Modem SetupPPop Up ReferenceP¡PRM-data Menus Area²*DTerminal Area OptionsA,:Terminal Screen Options{;AControl Memory Use╝@╠Internal Protocol OptionsêGπDialing OptionskW═Port Select/Configure8l>	UART Line Controlvu9
Baud Select»é
Modem Response Strings»îâModem Command Strings2Æ¢Default Video Emulation═òy$Key Translation Sequence file (.KTS)F¢r
Keyboard Redefinition╕ÑR
Directories in Use Menu
│π
Auto Engage Protocolsφ╜lAuto Log On TechnologyY╤
IEMSI DataZπReceiver Protocolsq≥Sender ProtocolsîTelephone Directory Area¢╚Fon.Record Edit Menuc6Y'Auto Answer Setups╝]Event Schedules╦e═	User Definable Menusÿo«Point Mailer SetupF~)?File List/Utility Areao╜╫MOUSEF╙╚Macro Language╓%
Macros list (LUI_)3α2%Macros list (Character I/O Functions)e°?Flagsk7qMacros list (File Functions)▄:s
%Macros list (Data Transfer functions)OH Macros list (Dialing/Fon.Record)Z[óMacros list (Misc Functions)ⁿg╔&Macros list (PRM-data Representatives)┼vÄ)Macros list (Replaceable Macro Functions)Së#Scripts - AutoScriptGen (Tm)vîâ%"Scripts - Labels, Gotos, Data Area∙▒ò"Scripts - Mini Host Script ExampleÄ╜u1
Whats New?∩╡Contacting the author╕	╟AceComm Registration▒
Order Form0╟About≈.╠
High Speed Modems
-----------------
Modems with connect speeds of 9600 and above and offer data compression and or
error correction are capable of transferring data at much faster rates that the
rated connect speed for baud modem.

Todays modems including v.32 and v.32bis and beyond are all capable of data
compression and offer data rates much faster than the 9600 connect speed.  To
make proper use of these Hi-Speed modems the user needs understand a little
about the modem.  Lets take a v.32bis modem as example.  V.32bis modems are
very common and the price rivals that of 2400 baud modems of a few years ago.
The V.32bis modem offers connect speeds up to 14400 and can transfer compressed
data using various built in compression protocols at rates averaging and beyond
1650 cps for pre compressed files, and 2000-3000+ with un-compressed files.


Locking the Port
----------------
It is necessary to use what is referred to as a "locked port" when operating a
14400 v32 bis modem.  A "locked port" refers to having the software (AceComm)
set the port at a rate faster than the highest possible connect speed, and then
leave the port speed alone.  Modems setup to use a "locked port" will make the
translation between connect speed and computer speed.  Here we refer to
"connect speed" as the speed at which the modem connects to the other modem,
and computer speed refers to the port setting.


Locked Ports and Flow Control
-----------------------------
In order to support connect speeds of 14400, the modem needs be setup to use
flow control.  Flow control enables the modem to be connected to the remote
modem at a different speed than the computer-to-modem speed.  When modems
connect at 14400 we refer to the connect speed as modem-to-modem speed.  14400
is not a speed that the port (UART) can be set to.  Valid port speeds include
9600, 19200, 38400 and 57600.  To take advantage of 14400 connect speeds, the
port needs be set to at least 19200.  AceComm supports setting the port to
19200, 38400, 57600, or 115200 and locking it here.  This is referred to as
"Locking the port".  19200 is a preferable starting speed.  The faster you lock
your port, the faster your computer needs to be in combination with a buffered
(16550) UART.  An average 286/(386SX) 16 Mhz computer using a standard 16450
UART chip can run a 14400 modem with the port locked at 19200.  Replace the
16450 single byte buffer UART chip with a 16550 16 byte buffer chip and the
same computers can run the port at 38400.

When the port is set to 19200, the UART is setup to make data available to the
computer software (AceComm) at 19200 bits per second (BPS).  This allows
AceComm to fetch a character from the port at a faster rate than the modem can
theoretically make the character available.  Theoretically because with todays
data compression technology, Hi-Speed modem are capable of delivering text
files at rates well above the connect speed.

The faster you set your port, the more quickly the UART assembles a character
from the modem.  Thus faster port rates require faster computers and or
buffered (16550) UART chips.

This is why we recommend 19200 a good starting point.  You may be able to
download compressed files with the port locked at 38400, but an un-compressed
file will be assembled so much faster with the modem's own compression services
that errors may occur.  You may experience errors with un-compressed files, and
normally do fine with compressed (.ARJ,.ZIP etc).  At 19200 you will probably
be fine either way.  At 38400 and 56700 un-compressed data files can arrive
much faster than your computer _may_ be capable of responding to.


Modem Setup
-----------
Modem defaults may not always be ready for use with using a locked port rate.
Most factory defaults are ready to go work with flow control and locked port
rates.  The AceComm voice support line gets plenty of calls from users whose
modems are not configured properly.

Lets examine a Supra v32 bis modem.  The AT commands below will work with
almost all Hayes compatible v.32 / v.32bis modems.

The Supra modem can be set to a factory default which is suited to locked port
rates by issuing the commands AT&F2 <CR>.  The command "AT&F2" loads a factory
configuration for IBM compatible modems.  The "&F2" configuration is
appropriate for error correction and data compression with Supra modems.
Consult your modem manual for the proper &Fn param for your modem.



Generic Hayes Compatible Modem Setup
------------------------------------

&C1      DCD indicates carrier from modem
&D2      Modem follows DTR signal
&K3      RTS/CTS hardware flow control
&Q5      Asynchronous reliable (error correction) mode

The above commands will work with most Hayes compatible modems.



Modem INIT Strings
------------------
Lets begin by making certain the modem is off hook and ready to receive an INIT
string.

           ATH0^M

The AT command "H0" brings the modem off hook.  Most modems need be off hook to
except AT commands.  "^M" is what AceComm translates into a <CR> character.

typing ATH1 <CR> from terminal mode puts the modem on hook. (busy)
typing ATH0 <CR> from terminal mode puts the modem off hook.

We may have the modem off hook (busy) for any number reasons.  It is a good
idea to begin our INIT string with ATH0^M and a small delay.  A small delay
gives the modem a chance to respond before we send another INIT string .  We
can create small delays in out INIT strings using ~ characters.  AceComm
creates a 1/4 second delay for each occurrence of ~ character.

ATH0^M~~~~ATE0M0&C1&D2&K3&Q6

AceComm will append INIT strings with the command terminator.  Normally <CR> or
as AceComm wants to see it ^M is the command terminator.  The above string
includes 1 embedded command terminator but leaves AceComm to append the final
<CR> to the end of the string.  The above modem INIT string is actually 2 init
strings chained together.  The above modem INIT string should make most Hayes
compatible modems ready to operate with FLOW control at a LOCKED port rate of
19200.


Saving to NV RAM
----------------
We do not need to include "&F2" in our init string every time.  It is likely
that other AT commands will be included in your modem init string.  M0 turns
the speaker off, certain tweaking to some of the S registers alters both
performance and connect response strings.  Custom modem configurations can be
saved to the modem using the "&W" command.  When this is done, the modem init
string can become simply ATZ <CR>.  Follows is our INIT string with &W tacked
on.

ATH0^M~~~~ATE0M0&C1&D2&K3&Q6&W

AceComm supports a SETUP field in the modem commands menu.  The setup field is
designed for modem command lines that are to be used occasionally, and
preferably to setup the modem with the "&W" AT command.  AT&F&W <CR> recalls
the factory default configuration and saves it to nonvolatile memory.  This
setup can then be recalled using ATZ <CR>.

NV RAM is not designed to be written to everyday.  You want to configure your
modem from time to time with &W and then use ATZ and whatever tweaks, as your
normal INIT string.  You can get by just fine by simply using the default INIT
string developed above, leaving off the &W command.  &W is for modem
configurations that require several lines of INIT strings.  &W is an AT command
you should know about, but may very well not ever need to use.



AceComm's Modem Install Utility
-------------------------------
The AceComm package provides a modem install utility.  MDMI.EXE will display a
menu of modem brands along with the setup strings for each.  You may choose
your modem type from the list.  MDMI.EXE will write directly to the ACE.PRM
file (AceComm's binary configuration file).



If your modem reports a carrier present when you know you are off line.

      Type AT&C1  <ENTER> from terminal area



┌─KBD Macro Assignments, current file: ACE_DEF.KBD───────────────
│ALT-A <AutoScrGen_>
│ ALT-B <ScrollBack_>
│ ALT-C <CaptureFile_>
│ ALT-D <PhoneList_>
│ ALT-E <SendStr> ATE^M <HostEcho>
│ ALT-F <FileList_>[DIR_DNLDS]
│ ALT-G <FileReq_>
│ ALT-H <MdmHangUp_>
│ ALT-I
│ ALT-J <DOSShell_>
│ ALT-K
│ ALT-L <RunProg> list
│ ALT-M <SendStr>ath1^M <ChgDir>mail\ged <RunProg>GOLDED <ChgDir>[DIR_START]
│ ALT-N <ChgDir>c:\mail\qm <RunProg>QM toss <ChgDir>[DIR_START]
│ ALT-O <PrmData_>
│ ALT-P <PrmData_>
│ ALT-Q
│ ALT-R <RunScript_>
│ ALT-S <ScrnDump_>
│ ALT-T <ScrnTag_>
└───(More) Display  Template  Quit  Help ┤<>v^├──────────────────

o The AceComm keyboard is macro driven

o The "Pop up Reference" displays each key press that has been assigned to a
  MACRO, or MACROS.

o Current .KBD file is displayed, AceComm supports unlimited .KBD files.
  Current .KBD filename is always displayed at the right side of the Terminal
  Area's status line.

AceComm's Keyboard is re definable.  Each key press can be re assigned a
different function, or set of functions.  To accomplish keyboard re definition,
AceComm uses descriptive text symbols called "macros".  Macros are enclosed
inside of angled brackets.

<PhoneList_>         this is the macro that runs the phone directory menu
<RunProg>LIST.COM    this macro can execute .COM and .EXE files, and search
                     the DOS path for them. The macro can also find the file's
                     .COM or .EXE extension.
                     <RunProg>LIST

Key board assignments are stored in a special binary file that uses .KBD file
extension.

The Pop Up Reference menu displays the current ".KBD" file key assignments.
A ".KBD" file contains a copy of all key-press assignments.  AceComm supports
multiple ".KBD" files.  Each key press combination can be assigned to one or
more macros.  AceComm allows the user to re define the keyboard functions if so
desired.  A rich macro library of functions and services are supplied.  A
complete macro listing with descriptions is contained in AceComm manual.

- M)ore or <CR> will display the next key set at top of screen.

- Display toggles the display from a text description and the actual macro
  assignments.  Not all macros have a text description included.  Text
  descriptions are included for the internal services which require local user
  input from the key board.

  The key press is displayed to the left, with it's MACRO assignment to the
  right.  The example below shows the MACRO for AceComm's configurations area
  is assigned to ALT-P.

     ALT-P <PrmData_>              <= MACRO assign
     ALT-P Configuration Area      <= descriptive text

- Template allows you to print a list of keys that have MACRO assignments.  The
  default filename is "PRN".  You may find it handy to print to a FILE,
  "KEY.PRN or similar, this way you can format the TEMPLATE, for a more custom
  print job.


o MACRO for this menu is: <PrmData_> default key press assign is to ALT P

o All PRM-data changes are auto-saved when Auto-Save flag is "ON" (default)

o Each sub-menu contains context sensitive HELP

Virtually any data contained inside the ACE.PRM file is accessible and
configurational from the PRM-data area.


o The controls are enable/disable flags, some of which can also contain a value
  for timers.

o Sub menus contain more categorized controls

Most controls are a series of flags which tell AceComm when to use some of the
features, and when not to.  Flags with the ON/OFF status are toggles, and will
be toggled here in this menu.

Notice the "Screen Saver" flag description contains the number 5,
rather than an ON/OFF.  Selecting Screen Saver mode 0 = OFF.


Telephone book on start up              No
--------------------------
  AceComm can go directly into the Phone List Area on start up.


Allow enhanced keyboard detection       Yes
---------------------------------
  AceComm will detect and use enhanced BIOS keyboard functions.  Some systems
  may not fully support this mode properly.  This flag allows locking out
  AceComm's use of enhanced BIOS keyboard functions.


Allow mouse detection                   Yes
---------------------
  Setting this to "NO" will cause AceComm to act as if a mouse is non existent,
  the mouse driver is never initialized, no mouse menu is presented in the
  Terminal Area.


Auto Save Changes                       On
-----------------
  When "ON" AceComm will save PRM-data changes to the ACE.PRM file.  When "OFF"
  the prompt inside the main PRM-data menu must be selected for PRM-data
  changes to be recorded to file.  This pertains to actual PRM-data below the
  menu system data.  Menu area attributes are ALWAYS SAVED, with exception to
  "Mass Menu Area" changes, these must be affected using the appropriate
  selection from inside "Mass Menu".


Screen Saver timeout value (minutes)    3
------------------------------------
  Screen Blanking function.  Screen Saver can be set from 0 - 10.  Values above
  0 are minutes without a key press to AceComm blanking the screen.  Screen is
  restored with a key press.  Un-blank-key-press is valid.  Use ALT alone for
  non-destructive key press to un-blank the screen.

  See also "Screen Saver if Data Carrier Detect" from Terminal Area Options
  menu.


Screen Saver if Data Carrier Detect     No
-----------------------------------
  Screen Blanking service disabled during modem status DCD bit detected to be
  ASSERTED.


Keep Log file                           On
-------------
  Toggle AceComm use logging ON/OFF.


Log modem response while off line       No
---------------------------------
  You can trap caller ID with this.
  AceComm can log modem response strings that come in.  This flag will tells
  AceComm if it should log the responses.  This is for off line only.  This
  flag is most use full when you want to know when your phone rings, AceComm
  will TIME STAMP PRM-data Area MDM_RESPONSE_RING responses strings.  Many
  modem ROMS are now featuring caller ID.  Modems that have caller ID ability
  will be able to present to the terminal screen the caller ID info, if
  available.  This information will also be logged along with the TIME STAMPED
  "RING".


All Sounds Override <> Sounds are       On
---------------------------------
  Toggle, enable/disable all sounds. Master override.


Ignore DCD on INIT & Dial               No
-------------------------
  If you must, you can tell AceComm your modem does not properly assert DCD.


DTR state when quitting AceComm         On
-------------------------------
  Will AceComm drop DTR when the <EndAceComm> macro is run.  Most modems will
  by default, drop carrier along with a drop in DTR.  DTR is a bit in the modem
  control register of the UART.  Setting this to "YES" will cause AceComm to
  drop DTR when ever <EndACECOMM> [n] MACRO is executed.


Printer rows                            60
------------
   When AceComm does print, key reference, this will allow a form feed to
   be sent every "rows" times.

╔═Terminal Screen Options═════════════════════════╗
║Status line                              Yes    ║
║ Terminal Area screen color (TTY mode)    7      ║
║ Strip high bit from incoming             Off    ║
╚═══ Edit  Quit  Help ┤<>├══════════════════════╝


Status line                              On
-----------
  Toggle AceComm 's STATUS LINE On/Off

  Notes: AutoScrGen (Tm) will assert the STATUS LINE, and restore it on when
         through.  The RunScript function will do the same.


Terminal Area screen color (TTY mode)    7
-------------------------------------
  This setting allows changing the Terminal Screen color that is initially
  active when AceComm is started.  The color will remain constant through TTY
  video emulation.


Strip high bit from incoming             Off
----------------------------
  "Off" data received from the modem is un altered.  "ON" data is stripped of
  any bits above the decimal value 128.


Default Video Emulation                  Av/An
-----------------------
  This selection brings up another menu.  The menu displays the available video
  terminal emulation modes.  Along with their associated KTS files.  This
  setting affects the default video terminal setting for AceComm.  Individual
  FON RECORDS contain their own video terminal settings.


o With version 1.7, AceComm begins managing memory usage.

o AceComm can swap the scroll back buffer memory to XMS prior to allocating
  large chunks of memory for other operations.

o EMS will be supported in the next release.

o XMS and EMS are supported for the SWAP functions.


XMS (kb) ok to use

  AceComm's internal memory manager can save overall memory requirements by
  swapping some internal data to XMS memory when about to perform another
  memory hungary task.


Scroll Back (kb) to use

  Up to 64 kb (64 x 1024) memory can be used for the back buffer.  Future
  versions of AceComm will begin allowing multiple 64 kb memory be used for
  scroll back buffer.  The first 64 kb memory is conventional memory.


Swap for <RunProg>                       On

  XMS, EMS, DISK swapping for the AceComm executable will take place when this
  flag is set "ON".  When SWAPPING is active, AceComm 's SIO is deactivated
  while <RunProg> MACRO is active.

  Notes: AceComm is currently using Ralf Brown's SWAP functions for the SWAP
         service.  SWAP is the only code inside AceComm executable that is not
         written entirely by MGP Programming Services.  SWAP has proven to be
         the most dependable code of this type that has been tested in our
         executable files.  MGP Software would like to thank Ralf Brown for
         permission to use his SWAP code in our products.


Swap for <DOSShell_>              On

  XMS, EMS, DISK swapping for the AceComm executable will take place when this
  flag is set "ON".  When SWAPPING is active, AceComm 's SIO is deactivated
  while <DOSShell_> MACRO is active.

  Notes: The Notes for <RunProg> apply to this MACRO


  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  ░░░░░░░░╔═Internal Protocol Options══════════════╗░░░░
  ░░░░░░░░║Auto Engage                       Yes  ║░░░░
  ░░░░░░░░║ File Rename                       Yes  ║░░░░
  ░░░░░░░░║ File Resume                       Yes  ║░░░░
  ░░░░░░░░║ Bell after internal protocol      3    ║░░░░
  ░░░░░░░░║ Time release from protocol        No   ║░░░░
  ░░░░░░░░║ Ascii protocol EOF character      26   ║░░░░
  ░░░░░░░░╚═══(Select) Quit  Help ┤<>├═══════════╝░░░░
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Auto Engage                              Yes

  Activate/deactivate Auto engage sequence triggers & Associated AutoM
  MACROS.  (enable/disable auto downloads) Does not affect auto log on.


File Rename                              Yes

  For internal Zmodem.  Rename "Yes" existing files when last modification
  time/date don't match.  AceComm will create a new filename.  When file times
  don't match, we can assume that although the filenames are the same, they
  were created at different times, and probably contain different data.

  Example:
          The file "114-35.QWK" exists in our receive directory.  The incoming
          filename is "114-35.QWK" also.  AceComm's internal zmodem will then
          compare file times and if they match, it is safely these files are
          the same and a file size check is done to see if we can resume the
          download.

          If the file times don't match, AceComm's internal zmodem will try and
          create a filename "114-35.QW0", if this filename exists, "114-35.QW1"
          etc.  Thus we can have several *same* filenames in our receive
          directory without overwriting them.
  Example:
          You download the "allfiles.lst" from the same BBS every week.  The
          filename is always the same, the file times differ.  AceComm will
          name duplicates names as "allfiles.lst", "allfiles.ls0",
          "allfiles.ls1" etc.


File Resume                              Yes

  For internal Zmodem.  Resume "Yes" existing files, data is appended to the
  file, "OFF", the file is created new, any existing file of the same name is
  over written.  *If* the file modification time matched.  Otherwise with File
  Rename function would have created it's unique filename.  In the event the
  file sizes are same, the file is skipped when the resume flag is set to yes.

  Example:
          You started down loading a file and were interrupted for some reason
          aborting the download.  You log back on at a later time, and using
          Acecomm's internal zmodem begin to download the file once again.
          AceComm's internal zmodem will see if the file times match, and
          considers the to be the same file.  Internal zmodem will tell the
          host zmodem to begin sending from the position where the file was
          aborted from.  The file can be "Resumed", thus saving the time
          involved in down loading the entire file all over again.


Ring bell after internal protocol        3

  Internal protocols will sound an alarm before returning to Terminal Area.  A
  value of "0" disables any sound after internal protocols.  A value of "1"
  plays a Victory tune.  Values from 2-30 become seconds to sound the internal
  bell.  See also <RingBell> 5 MACRO


Time release from protocol               No

  Time slices for Windows/ OS/2, DV, and DOS are supported.  This flag applies
  to the DV and DOS time releases.  Releasing time to Windows/ OS/2 using the
  interrupt 2fh function causes so many missed interrupts that AceComm never
  releases int 2fh time slices during an internal protocol function.  Time
  slices are otherwise given up generously.

Ascii protocol EOF character            26

   Ascii receive protocol will consider the file received when this character
   comes along.  26 is the standard character marking "End Of File" with DOS
   based text files.


░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░╔═Dialing Options═══════════════════════════════╗░░░░░
░░░░░░░░░░║Inter byte delay                         4    ║░░░░░
░░░░░░░░░░║ Modem Response Timeout when dialing      65   ║░░░░░
░░░░░░░░░░║ Seconds between re-dial                  1    ║░░░░░
░░░░░░░░░░║ DTR state between re-dial                Off  ║░░░░░
░░░░░░░░░░║ Ring BELL on Dial/Connect                1    ║░░░░░
░░░░░░░░░░║ Hide PWD when dialing                    No   ║░░░░░
░░░░░░░░░░║═Menus═════════════════════════════════════════║░░░░░
░░░░░░░░░░║ Phone Number Modifiers                        ║░░░░░
░░░░░░░░░░╚═══(Select) Quit  Help ┤<>├══════════════════╝░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Inter Byte Delay                         1

  Add (value x 55 millisecond) delay between modem command characters.  With a
  value of '0' modem command strings are sent just as fast as the UART's
  Transmit Hold Register is Empty (THRE).  (I've observed Supra modems behave
  much better using a value of 1 for inter byte delay when in continuous
  re-dial)


Modem Response Timeout when dialing      60

  Master timeout when dialing.  Overrides your modem's own S7 register.

  Notes: It may be best to set this value several seconds above your modem's S7
         register.


Seconds between re dials                 1

  AceComm will pause this many seconds between receiving a modem response
  string, or timing out, and sending the next dial string to the modem.  The
  variable can be toggled from 0 seconds to 90 seconds.


DTR state between re-dial                Off

   If DTR will be set to LO between re-dial attempts.


Ring BELL on Dial/Connect                1

  Seconds to ring BELL on successful detection of either DCD or a connect
  message response from the modem.


Re-dials in mail mode                    64


   Number of re-dials before giving up to terminal mode.  A mail schedule will
   go back into the dialer every few minutes anyway.  If the scheduled mail
   event ends, re-dial continues for this setting times.

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░╔═Phone Number Modifiers═════════════════════════════════╗░░░░
░░░░░░░░░░║═Translate══════════════════════════════════════════════║░░░░
░░░░░░░░░╔║ Translate 1-602-846-4563 1-602-846-2940                ║░░░░
░░░░░░░░░║║ Translate 1-602-292-0997 1-602-292-0997                ║░░░░
░░░░░░░░░║║ Translate                                              ║░░░░
░░░░░░░░░║║ Translate                                              ║░░░░
░░░░░░░░░║║ Translate 1-602-                                       ║░░░░
░░░░░░░░░║║═Long Distance Detect═══════════════════════════════════║░░░░
░░░░░░░░░║║Long Dist 1-                                           ║░░░░
░░░░░░░░░║║═Replaceable════════════════════════════════════════════║░░░░
░░░░░░░░░║║ !                                                      ║░░░░
░░░░░░░░░╚║ @                                                      ║░░░░
░░░░░░░░░░║ #                                                      ║░░░░
░░░░░░░░░░║ $                                                      ║░░░░
░░░░░░░░░░╚═══(Edit) Quit ┤<>├═══════════════════════════════════╝░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

AceComm will use Dial statements to modify phone numbers.

Translate statements are required when using point mail functions, because
NODELIST phone numbers contain area codes.  AceComm uses Translate statements
to know how to modify phone numbers.

Translate

   String on left is replace with string on right
   Example for changing long distance numbers into local numbers
      1-602-    |
      |         |
      |         |____________________
      |                             |
      This will be replaced with this, stripping 1-602- from phone numbers
      Note: LDF flag must be set ON for any Fon.Records you want Translation
            to be used with. LDF can be set ON or OFF for an entire FON file
            all at once from inside the "Mass Updates" menu located inside
            the Phone list menu area.


Long Distance Detect

   Used with Point Mail dialing, AceComm will consider any phone numbers that
   begin with these characters to be long distance numbers.
   Example:  1-
   If 1- are the first two characters in a phone number, AceComm will require
   that the current event schedule have ",LF" flag.


Replaceables
   !        These are symbols which can represent a string of numbers and or
   @        dial string modifiers. A symbol will be replace with the string
   #        it represents.
   $

   AceComm supports two delays. A   ~   character causes a 1 second delay
                                A   `   character causes a 5 second delay
                                Note the difference between ` and '



Port numbers are merely symbolic for identification.  Port addresses and the
Interrupt ReQuest line for the address is configurational.

      Install option, AceComm will close the active port and install it's SIO
  on the port selected.  MDM_INIT string is sent to modem.

      Edit option, you will be prompted for port address and IRQ.  Address is a
  HEX number.  Entering a decimal value will fail.

      Rbuf/Tbuf are the buffer size used for serial I/O.  Normally there won't
  be any advantage to raising the TBuf size.  RBuf size will be adequate at
  about 1024 bytes for all normal use.  The larger value (default) will allow
  storage of incoming during Back buffer, Tagger etc.  RBuf range is from 1k to
  32k, TBuf 128 bytes to 32k.  The Zmodem sending unit's window size is equal
  to TBuf size.  Window size is not data-frame size.  Window size means "how
  much data do we let build up into the TX buffer at any one time.  RBuf/TBuf
  can be changed at any time, on line or not.  It is recommended that the HOST
  be still when re-sizing RBuf/TBuf.  RBuf/TBuf changes take immediate affect.

      FIFO trigger is the number of bytes buffered before a First In First Out
  UART chip will alert the CPU by way of interrupt.  FIFO UART operation is
  automatically enabled when a FIFO UART is detected.  AceComm always checks
  for FIFO UART presence whenever installing onto a PORT.  FIFO trigger level
  changes take immediate affect.  Trigger level of "1" affectively disables the
  FIFO affect.  The setting for "8" will give the best performance under
  multi taskers.

      TX is a flag that tells AceComm to use interrupt driven output.
  Interrupt driven input is always on.  The TX toggle takes immediate affect.
  If you FAST computer/modem setup is capable of overwhelming the other end
  when sending data, toggling TX "OFF" may improve the situation.

      CTS/RTS hardware handshaking / FLOW control Hardware handshaking may
  normally be left ON (default).  High speed modems using fast data rates and
  typically locked port rates will require software to use FLOW control.

      XON/XOFF software handshaking / FLOW control Many HOST software will
  recognize XON/XOFF FLOW control.  You may need software handshaking enabled
  for proper FLOW control while performing ascii uploads.



The UART's line control register can be set for several different data
arrangements.  Most common being 8 data bits, no parity bit, 1 stop bit.  Most
BBS systems will use the 8N1 configuration.  The UART uses the line control
information when assembling incoming bits into a byte.  Setting this
information from the PRM-data area, the format is stored in the default
settings for AceComm to use.  When you look at the FON directory records you
will see that each record stores it's personal line control setting to be used
when dialing the record.  Data format is saved with each individual record in
the record's .FON file.  When using AceComm in HOST mode the default setting
will be used.  AceComm retains the default line control register setting in the
ACE.PRM file.  FON record line control settings are stored in their respective
.FON files.

BAUD rate is also something that will normally be attached to a FON record and
used when dialing the record.  This is of more concern to users of modems that
do not allow LOCKING the port.

LOCK BAUD is almost always available as an option when using a modem that can
support CONNECT rates above 2400 baud.  When using the LOCK BAUD option,
AceComm will leave the port speed alone when dialing.  The modem handles speed
translation between 'connect' and 'computer'.  LOCK BAUD ON is generally
preferable with modems that support it.  The status displays will reflect 'L'
appended to the baud rate when LOCK BAUD is set ON.  NOTE: the 'L' is not
appended in the Line Control Window's display above.



    ╔═══ Serial Port Setup Menu ═══════════╗
    ║ Port Number Select      1            ║
    ║╔═ UART Line Control ═══════════════╗ ║
    ║║╔═ Data Bits ═══════════════════════╗║
    ║║║5                                 ║║
    ║║║ 6                                 ║║
    ║║║ 7                                 ║║
    ║║║ 8                                 ║║
    ╚╚╚═ Select  Quit ════════════════════╝╝
    ╔═══ Serial Port Setup Menu ═══════════╗
    ║ Port Number Select      1            ║
    ║╔═ UART Line Control ═══════════════╗ ║
    ║║ Data Bits          8              ║ ║
    ║║╔═ Parity ══════════════════════════╗║
    ║║║None                              ║║
    ║║║ Odd                               ║║
    ║║║ Even                              ║║
    ╚╚║ Mark                              ║╝
      ║ Space                             ║
      ╚═ Select  Quit ════════════════════╝
    ╔═══ Serial Port Setup Menu ═══════════╗
    ║ Port Number Select      1            ║
    ║╔═ UART Line Control ═══════════════╗ ║
    ║║ Data Bits          8              ║ ║
    ║║ Parity             None           ║ ║
    ║║╔═ Stop Bits ═══════════════════════╗║
    ║║║1                                 ║║
    ║║║ 2                                 ║║
    ╚╚╚═ Select  Quit ════════════════════╝╝

Data Format

  Stop bits, Parity, Data bits.  Each character that comes in the serial port
  arrives as a series of BITS.  The BITS are assembled in your serial port's
  UART's SERIAL DATA UNIT SDU).

  AceComm's default setting of 8 data bits, no parity, and 1 stop bit is the
  most popular arrangement, and that which most BBS systems use.  You will
  change the Data Format when necessary for connecting with systems that don't
  use the standard 8N1.


o Connect speeds such as 12000, 14400 etc.  are not actual data rates that the
  UART (serial port) can be set to.

o Modems capable of connecting at 9600 and above can usually be used with a
  "Locked port"

o Setting the Baud rate to 19200 for a 9600 baud modem will allow better
  performance when down loading data.

o Locking the port means selecting a baud rate higher than the highest connect
  speed the modem is capable of, and telling the communications software to
  lock it there.

o Using a locked port requires your modem be in full handshake mode.


   "14.4k, 16.8k modems"

  Q.) Why doesn't AceComm support my 14.4k modems connect speed of 14400 in
      the "Baud Select" menu?

  A.) 14400 is a data rate your modem is capable of.  The serial port in your
      computer cannot be set to 14400 baud.  In order to operate at 14400
      connect speeds, the serial port must be set to 19200, 38400, or 57600
      baud.

      o 14400 is your modems "Connection Rate" "Line Speed", "Modem-to-Modem
         Speed", "DCE Speed" are other synonyms for "Connection Rate"

      o 19200 is the closest "Computer Rate"

      o Selecting the closest "Computer Rate" is called using a "Locked" port

        When using a "Locked" port your modem makes the translation between
        "Connection Rate" and "Computer Rate" by using FLOW control (RTS/CTS
        hardware handshaking) Your serial port can be set to 19200, or 38400
        and left there (See LOCKBAUD)



"Selecting your highest port speed when LOCKing the port"

  Locking the port at 57600 with a high speed modem causes the UART to assemble
  a character off the bit stream VERY quickly.

  If you experience serial input errors with HIGH locked rates, drop down to
  38400 or even 19200.  The lower rate will cause the UART to make characters
  available at a reduced speed.  For instance a 12 MHZ AT will probably
  experience data overruns using a locked port above 19200 when down loading
  TEXT files with ZMODEM.

  A common miss-conception is when CRC errors occur with HIGH LOCKED PORT
  rates, that it is the UART unable to keep up.  This is simply not true.  The
  UART/modem combo is capable of out running the computer/software combo.  When
  using a TASK switcher such as WINDOWS or DESQVIEW, a lower PORT RATE such as
  19200 may very well be needed for efficient data transfers.

  The idea is to set the port to a speed that the computer/software combo is
  capable of responding to quickly enough.


o AceComm uses text response strings only

o Connect strings will allow non-locked ports "auto adjust" AceComm leaves
   locked ports set to the selected LOCKBAUD rate.

Modem response strings are normally UPPER CASE.  Response strings are used by
AceComm when dialing to more quickly respond to BUSY, NO CARRIER etc.  HOSTMODE
will be waiting for a RING code.(1) The Response strings that can be matched
while dialing are displayed in the DIAL WINDOW as they come in.

AceComm will detect a connection after dialing, a few seconds quicker when able
to match a connect string with the modem's connect message.

High Speed modem users may configure the modem for more than 1 connect message
to be returned from the modem.  AceComm need only detect 1.  The connect string
fields are freely configurational, and follow no specific order.  Leave them,
or edit them as needed any way you see fit.

AceComm will fall out of re-dial on detection of carrier anyway.  For the LOCK
BAUD users, this detection is right away.  For those who use modems that don't
allow port LOCKING, and want auto baud rate adjustment to match the connect,
carrier is checked only after the dialing has timed out.  AceComm will be
trying it's best to get a CONNECT string so that the connect speed can be
checked.


(1) HOSTMODE also uses the UART's modem status register RI bit when detecting
     "RING".


o Cmd Terminator is automatically appended to modem command strings.

Here we have the modem commands AceComm uses to interact with your modem.
Please note the bottom of the menu contains the "Cmd Terminator".  AceComm
appends this to all modem commands automatically.  Notice that "Init" has a ^M
followed by ~ and another command.  This is an example of command stacking.

'^' is an escape character AceComm recognizes and translates byte following
into control characters.  ^M translates into a carriage return, <CR>, (13d).  A
character following '^' is either upper case or made upper case by AceComm,
then subtracted by 64 converting 'A' to 1 etc.

'~' translate into 1 second delays.

'`' translate into 5 second delays.

AceComm modem command lines are limited to 40 characters in length, including
the Cmd Terminator.  This is a standard maximum command length used by modem
manufacturers.


o Video Terminal emulation is built into AceComm

o Associated KTS file is the Keyboard Translation Sequence file that will be
  loaded for the given Video Type.

o Keyboard Terminal emulation is defined inside of *.KTS files AceComm includes
  a separate utility KTS.EXE which allows the user to define KTS files for any
  Keyboard Terminal emulation desired.

AceComm emulates the selected VIDEO type.  "Associated KTS file" is the .KTS
file you want to use with the VIDEO selection.  Each time AceComm activates a
VIDEO type, the associated KTS file is loaded and becomes active on the
keyboard.  KTS keyboard definitions override MACRO assignments.

KTS (Key Translation Sequence) files contain assignments for a sequence of
characters to a key press.  When a key is pressed from inside TERMINAL area,
AceComm first checks to see if the key press has been defined in the current
KTS data.  If so, AceComm sends the assigned sequence of characters to the
modem.  The utility KTS.EXE (included) can be used to create new and or custom
KTS files.  See the included .ASC examples for defining and creating KTS
files.  Using KTS.EXE, the keyboard can be deigned to emulate any possible
combination of characters available to the system.  Key press assignments
defined in the KTS data area are given top priority, and thus take presides
over MACROS assigned to the same key.


░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░┌─VT102.KTS─────────────────────────┐
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│TAB          ^I                   │
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ Del/.                            │
░░░░░░░░░░░░░░░░░░░░░┌───────────────────│ Home/7       ^[[H                 │
░░░░░░░░░░░░░░░░░░░░░│─ PRM-data   Sub-Me│ Up/8         ^[[A                 │
░░░░░░░░░░░░░░░░░░░░░│┌─Area controls / O│ Left/4       ^[[D                 │
░░░░░░░░░░░░░░░░░░░░░││ Telephone book on│ Right/6      ^[[C                 │
░░░░░░░░░░░░░░░░░░░░░││ Allow enhanced ke│ End/1        ^[[K                 │
░░░░░░░░░░░░░░░░░░░░░││ Allow mouse detec│ Down/2       ^[[B                 │
░░░░░░░░░░░░░░░░░░░░░││ Mouse horizontal │ Keypad-0     ^[Op                 │
░░░░░░░░░░░░░░░░░░░░░││ Mouse vertical se│ Keypad-1     ^[Oq                 │
░░░░░░░░░░░░░░░░░░░░░││ Auto Save Changes│ Keypad-2     ^[Or                 │
░░░░░░░░░░░░░░░░░░░░░││ Screen Saver time│ Keypad-3     ^[Os                 │
░░░░░░░░░░░░░░░░░░░░░││┌─Terminal Area Op│ Keypad-4     ^[Ot                 │
░░░░░░░░░░░░░░░░░░░░░│││┌─Default Video E│ Keypad-5     ^[Ou                 │
░░░░░░░░░░░░░░░░░░░░░││││─Video Emulation│ Keypad-6     ^[Ov                 │
░░░░░░░░░░░░░░░░░░░░░││││ TTY            │ Keypad-7     ^[Ow                 │
░░░░░░░░░░░░░░░░░░░░░││││ Ansi           │ Keypad-8     ^[Ox                 │
░░░░░░░░░░░░░░░░░░░░░└│││ Avatar         │ Keypad-9     ^[Oy                 │
░░░░░░░░░░░░░░░░░░░░░░│││ Av/An          │ Keypad--     ^[Om                 │
░░░░░░░░░░░░░░░░░░░░░░│││VT102          │ Keypad-*     ^[Ol                 │
░░░░░░░░░░░░░░░░░░░░░░└└└─ New_Vid  Asso_└─ Select  More  Quit  Help ┤<>v^├──┘
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

KTS files contain a sequence of bytes to be sent to the modem when a particular
key press is made.  AceComm emulates a video type independently from the
keyboard emulation.  KTS files may be edited to emulate any combination
imaginable.  KTS files may be created and assigned to a video type using the
"Associate" option above.

AceComm comes with ready made KTS files.

   Notes: .KTS files are compiled from .ASC files.  .ASC files may be created,
          maintained, customized with a TEXT EDITOR in ASCII TEXT mode.  The
          utility KTS.EXE is provided for compiling .ASC files into .BIN
          files.  Rename the .BIN file with .KTS and copy the .KTS file into
          the directory pointed to in PRM-data for ".KTS".

    ╓─KeyBoard Redefinition────────╖
    ║─Current Keyboard:ACE_DEF.KBD─║
    ║      F1 - F12               ║
    ║   ALT-F1 - F12               ║
    ║  CTRL-F1 - F12               ║
    ║ SHIFT-F1 - F12               ║
    ║  ALT+KEY Combo               ║
    ║ CTRL+KEY Combo               ║
    ║  Extended Keys               ║
    ╙─── Select  Write  Quit───────╜
o Each of the above key sets is available for assignment to a MACRO or MACRO
  stack.  The MACROS provide a wide range of services.  All of AceComm's
  functionality is available with MACROS.

o The "SHIFT-Fn" key-set is used by TAGGER to store TAGGED ITEMS

Menu options here allow each key press be re-assigned.  The keyboard can be
arranged thru the use of MACROS to resemble software you are more accustomed
to.  AceComm`s keyboard is totally MACRO driven.  Keyboard definitions are
stored in .KBD files.  ACE.CTL can be edited so future upgrades of AceComm will
automatically configure with your keyboard preference.


Write
  Prompts for a filename, and writes the current keyboard to a new KBD file, or
  updates an existing KBD file of the same name.

  When you choose "Write" the following occurs:

    AceComm  prompts  for  "filename"
    "filename"  is  forced a ".KBD"  extension
    "filename" is written in the same directory as ACE.PRM
    resides
    AceComm writes the contents of "Key MACRO Assignments" menu
    to the file
    AceComm re-reads the original KBD file.

  In short:
  - All changes, once written to a KBD file with "Write", pertain to the KBD
    file written to.
  - Making changes and not "Writing" them, will be saved to the current KBD
    file at program end.

To further explain, all changes made in this menu area to the keyboard
definitions, apply to the current KBD file.  If you exit the menu area, without
choosing "Write", and say "ACE_DEF.KBD" is active, the changes will be stored
to "ACE_DEF.KBD" when you leave the PRM-data area.  If you choose "Write" from
the above menu, then the changes are stored to a new or existing KBD file, and
do not affect the current keyboard, as AceComm re-loads the current KBD file
after a "Write".  Unless you "Write" to the current KBD file, which is un
necessary, because AceComm will update it automatically anyway.

"SHIFT-Fn" is the key-set the TAGGER function assigns TAGGED ITEMS to.  When
you tag a word or line from the screen, the tagged item becomes associated with
the first available SHIFT-Fn key by way of the <SEND_SendStr> MACRO.

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░┌──────────────────────────────────────┐░░░░░░░░░░░░░░░░░
┌─ F# Keys ───────────────────────────────────────────────────────────────────
│ 1<SendStr>[USER_NAME]^M
│  2<SendStr>[FON_REC_PWD]^M
│  3<SendStr>[LOCATION]^M
│  4<SendStr>[VOICE_PNUM]^M
│  5<SendStr>[PASSWORD]^M
│  6<SetDTR> ON
│  7<SendAscii> %PF
│  8<Users>
│  9<HelpMenu>
│ 10<TopBar>
│ 11<User>1
│ 12<SendStr>75120,3306^M
└─── Edit  Zap  Quit ┤<>├───────────────────────────────────────────────────
░░░░░░░░░░░░░░░░░░░░░└─── Select  Quit  Help ┤<>v^├─────────┘░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Edit

  Allows editing the MACRO assignment.


Zap

  Clears field (Zaps) the MACRO assignment.

    ╓─Directories in Use Menu─────────────────────────────────
    ║.FON files: D:\ACE
    ║ .CAP files: D:\ACE
    ║ .SCR files: D:\ACE
    ║ .KTS files: D:\ACE
    ║  Downloads: D:\ACE
    ║   Nodelist: D:\ACE
    ║  .REQ/.FLO: D:\AC
    ╙─── Edit  Quit ──────────────────────────────────────────

.FON

  Where AceComm expects .FON files to be.


.CAP

  Where AceComm will create and or re-open CAPTURE files.  A CAPTURE file is a
  means for "capturing" all port I/O to DISK.  When you open a capture file,
  AceComm records everything that comes into the serial port, exactly as it
  comes in.  Capture mode can be set to "Text" or "Raw".  "Raw" mode, no
  filtering, no translation of any kind takes place.(1) Video codes are
  recorded as they come in.  This allows capture of ANSI, AVATAR, RIP etc.
  screens.  "Text" mode, video control codes are filtered from the captured
  text.  AceComm does not overwrite CAPTURE files.  You have the option of
  renaming the file, or AceComm will append new data to the end of the
  file(2).  Time/Date stamps are always placed at the beginning of a capture
  file when opened.


.SCR

  Where AceComm will create and or look for .SCR files.  The MACRO <RunScript_>
  lists this directory.


.KTS
  Where AceComm expects to find it's KTS files.  It's ok to store
  your .ASC files in this directory.

Downloads

  This is the directory that AceComm 's internal protocols will receive into.
  AceComm will also list this directory when building upload LISTFILES.


Nodelist

  When you select the FileRequest option, AceComm expects to find either (a) a
  valid RAW FIDO NODELIST and NLIST.IDX file(3).  or "Boss Data".


.REQ/.FLO

  .REQ files are used when doing File Requests.  When you ask AceComm to make a
  File Request, the filename is created using the NET/NODE number in ascii hex,
  and the file extensions is ".REQ".

  .FLO files (Mail List File) are used when you want to Fil Attach to a
  NET/NODE.  File Attach may be any file(s), and will

  for point mail operators to send their mail bundle to the HOST.

(1) ANSI.EXE is a provided utility that can filter VIDEO CONTROL SEQUENCES from
     DISK files.

(2) If you have edited a CAPTURE file, or by other means used any utility that
     added the 26d character to the file, AceComm will not overwrite the END OF
     FILE character.  This may result in some editors not recognizing new data
     that follows the 26d character.  There exists utilities that can filter
     this and other characters from TEXT files.

(3) NLIST.IDX is a file created using the AceComm utility IDX.EXE.  IDX.EXE
     will create a small index into the RAW FIDO NODELIST file, for all
     ZONE:NET pairs.



░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░┌──────────────────────────────────────┐░░░░░░░░░░░░░░░░░
┌─Auto Engage Sequence Triggers───────────────────────────────────────────────
│─Trigger Sequence -- Responding Macro Stack──────────────────────────────────
│rz^M**^X            <RecvZmo>
│ HS*^B               <RunProg>HSLINK -P%P -U[DIR_DNLDS] @UPLDS.LST
│ ^H ^H ^H ^H ^H ^H   <RunProg>BIMODEM \L%P \R[DIR_DNLDS] Bimodem.Pth
│ MPt ^V^H            <RunProg>MPT P%P N+ F+ R+ R [DIR_DNLDS]
│
│
│
│
│ **EMSI_REQA77E      <SendEMSI_CLI>
│ **EMSI_IRQ8E08      <SendEMSI_ICI>
│─Pre/Post AutoM Macros───────────────────────────────────────────────────────
│
│
└─── Edit  Quit  Help ┤<>v^├──────────────────────────────────────────────────
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

o The last byte in a Sequence Trigger is the sequence scan trigger byte

o The last byte in a Sequence Trigger should end in an un common character (as
  designed above)

o EMSI_REQ detection can allow swift access to a BBS when mailer software
  answers the phone

o EMSI_IRQ is sent by BBS software to tell the caller it can do Interactive
  EMSI data handshaking

  The above defaults have been working very well for the protocols associated.


Sequence Trigger

  A sequence trigger is a character string that is used by a remote HOST,
  protocol etc.  as an attempt to engage some action from the other end.


Trigger Character

  AceComm scans back thru it's receive buffer for a trigger sequence with each
  occurrence of the "last byte of the sequence".  This means that AceComm will
  scan for the string each time it sees the trigger byte arrive from the
  modem.  For this reason a sequence trigger will end in a non-common byte.
  While 'rz^M' (^M being <CR>, 13 decimal) would be a valid sequence trigger,
  we don't want AceComm to search on every carriage return character that comes
  in.  Look at Bimodem's sequence trigger, we don't want to end the sequence
  with a <SP> character (^' is the control code for SPACE CHARACTER 32
  decimal).

  Characters 32(Space) and below need be escape encoded with the '^' ^A becomes
  1, ^B 2, ^C 3, ^M <CR>, ^` 32 <SP> etc.  When entering sequence text, you may
  simply type the <SP> character, AceComm will do the conversion for you.


**EMSI_REQA77E

  Most FIDONET mailer software will send an EMSI_REQ string to a caller.  This
  string is an attempt to determine the caller type.  AceComm's <SendEMSI_CLI>
  MACRO tells the mailer this is a human caller, bypassing the common "Press
  ESC to enter BBS" prompt.  DBridge mailer software is in complete and won't
  recognize this advanced EMSI handshaking.  All other mailer software does.


**EMSI_IRQ8E08

  IEMSI capable BBS systems will send an EMSI_IRQ string to a caller.
  Detection of EMSI_IRQ is responded to with IEMSI data handshaking.
  AceComm's <SendEMSI_ICI> MACRO handles IEMSI log on.  (see PRM-data IEMSI
  Setup menu)


Responding MACRO Stack

  The MACRO defined to the right of each sequence trigger will be used when a
  sequence has been detected.  This allows AceComm to be configured with auto
  download detection for up to 10 protocols.  MACRO STACKING is valid with
  AutoM MACROS.

  The sending of a carriage return as the last macro is use full for moving the
  BBS display upon return from the external protocol.  AceComm completely
  disables the serial port before calling any external programs.


PreAutoM MACRO

  The "PreAutoM" MACRO, if defined, will be processed prior to the AutoM MACRO
  about to be processed.  This allows for some extra maneuvering to be done
  which might otherwise be common to all AutoM MACROS anyway.  For instance the
  practice of changing to your "FILES" directory will insure that downloads are
  received into the "FILES" directory, even with protocols that do not allow
  file redirection.

  Notes: If you use PreAutoM MACRO for changing directories, remember that
         protocols such as BIMODEM which you may be up loading with at the same
         time, will need full path names to files they are to send.  Also
         protocols or what have you that use PRM, CFG etc.  files need know
         where to find these control files.


PostAutoM MACRO

  The "PostAutoM" MACRO, if defined will be processed immediately following the
  AutoM MACRO.  Again this is some extra MACRO processing power for those
  common to all AutoM MACRO jobs.


To Disable Auto Engage Sequence Triggers

  Located in the "Terminal Area Options" is a over ride flag with which Auto
  downloads may be completely disabled.  This flag affects all Sequence
  Trigger / AutoM MACROS pairs defined.

  Auto Engage                            On    <=-ENABLE
  Auto Engage                            Off   <=-DISABLE


╔═Auto Log On Technology═════════════════════════════════════════════════════╗
║═Trigger Sequence -- Responding Macro Stack═════════════════════════════════║
║is your name:       <SendStr>[USER_NAME]^M~Y^M~[FON_PWD]^M                 ║
║ Your FIRST name:    <SendStr>[USER_NAME]^MY^M~[FON_PWD]^M                  ║
║ Host Name:          <SendStr>CIS^M~~[FON_ID]^M~~[FON_PWD]^M                ║
║ first name ?        <SendStr>[USER_NAME]^MY^M[FON_PWD]^M                   ║
║ and LAST name:      <SendStr>[USER_NAME]^M~^M~[FON_PWD]^M                  ║
║ last name?          <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ first name?         <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ (First and Last)    <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ full name?          <SendStr>[USER_NAME]^M~^M[FON_PWD]^M                   ║
║                                                                            ║
║                                                                            ║
║═Case  Off══════════════════════════════════════════════════════════════════║
╚═══(Edit) Toggle_Case  Quit  Help ┤<>├════════════════════════════════════╝

o Each Fon.Record FLAGS can be toggled to perform auto log on by either use of
  a script file, or character sequence trigger and associated macro stack.

o AceComm responds to a sequence trigger by processing the macro stack.

o Log on sequence trigger scanning is available immediately after connect, and
  until the sequence has been found, or 2 minutes of on line time has passed.

o When a log on sequence has been processed, or 2 minutes of on line time has
  passed AceComm stops scanning for log on sequences for the remainder of the
  on line session.

o Sequence triggers are optionally CASE or nO cASE sensitive

On Dial/Connect Acecomm will, if the AutoL flag for the current Fon.Record is
SET, begin scanning incoming data for Auto Log On Sequence Triggers.  When any
of the 10 possible sequences is found, the sequence's associated macro stack is
processed.  Once a sequence has been found, scanning stops until the next
Dial/Connect.  If a sequence has not been found after the first 2 minutes of on
line time has passed, Intelligent Auto Log On (Tm) is disabled until the next
Dial/Connect.


Toggle_Case

  The setup menu contains an option where sequence trigger scanning can be made
  case sensitive.  AceComm's default setup is for scanning to be not case

  sensitive.


Sequence Trigger

  A sequence trigger is a character string that is used by a remote HOST,
  protocol etc.  as an attempt to engage some action from the other end.


Trigger Character

  AceComm scans back thru it's receive buffer for a trigger sequence with each
  occurrence of the "last byte of the sequence".  This means that AceComm will
  scan for the string each time it sees the trigger byte arrive from the
  modem.  For this reason a sequence trigger will end in a non-common byte.
  While 'rz^M' (^M being <CR>, 13 decimal) would be a valid sequence trigger,
  we don't want AceComm to search on every carriage return character that comes
  in.  Look at Bimodem's sequence trigger, we don't want to end the sequence
  with a <SP> character (^' is the control code for SPACE CHARACTER 32
  decimal).

  Characters 32(Space) and below need be escape encoded with the '^' ^A becomes
  1, ^B 2, ^C 3, ^M <CR>, ^` 32 <SP> etc.  When entering sequence text, you may
  simply type the <SP> character, AceComm will do the conversion for you.


To Disable Auto Log On Sequence Triggers Located in the

  "Fon.Record Edit" FLAGS menu is a over ride flag with which Auto Log On for
  the record may be completely disabled.  This flag only affects the currently
  selected record.

 Closer Look

 is your name:       <SendStr>[USER_NAME]^M~Y^M~[FON_REC_PWD]^M
  |                   |        |                 |
  |                   |        |                 Fon.Record
  Sequence Trigger    |        |                 password field
                      |        |
                      |        IEMSI data field
                      |
                      Associated macro stack

 AceComm provides two different data macros for passwords

   [PASSWORD]  represents the IEMSI password field

[FON_REC_PWD]  represents the current Fon.Record
               password field

Fon.Record password fields can be cloned for the entire FON file using the
"Mass_change" menu selection from inside the Telephone directory list area.


o Electronic Mail Standard Identification (EMSI)

o EMSI is a widely used handshake protocol used with FIDONET mailer software

o Interactive Electronic Mail Standard Identification (IEMSI)

o IEMSI is an auto log on interface designed to present caller information to
  the HOST quickly and automatically.  Few BBS systems currently support
  IEMSI.  RA supports IEMSI log on.

o Interactive EMSI log on function is called with the <SendEMSI_ICI> MACRO
  function

o Data defined here will be used by the <SendEMSI_ICI> MACRO function

o All IEMSI data need not be defined.  The BBS system will prompt the user for
any invalid or missing information.



IEMSI handshake data

User Name and Alias

  Enter your name as you want it to appear to a BBS system.  There is also a
  PRM-data MACRO [USER_NAME] that uses this field.

  There is also a PRM-data MACRO [ALIAS] that uses this field.


Location

  City, State, Country

  There is also a PRM-data MACRO [LOCATION] that uses this field.


Data # and Voice #

  If you have no Data #, leave the field blank.  There is also a PRM-data
  MACRO [DATA_PNUM] that uses this field.

  There is also a PRM-data MACRO [DATA_PNUM] that uses this field.


Password

  This is a default password, any FON.RECORD.PASSWORD always will override this
  IEMSI PASSWORD.

  There is also a PRM-data MACRO [PASSWORD] that uses this field.
  Note: [fon_rec_pwd] is used to represent the Fon.Record password field

Birthdate (currently unused)


CRT def    (current session only)

      ╔═CRT Def═════════════════╗
      ║AVATAR/0+ / ANSI        ║
      ║ ANSI X3.64              ║
      ║ TTY (raw mode)          ║
      ╚═══ Select  Quit ┤<>v^├══╝

  Consists of four sub-fields separated by commas, from left to right:TERMINAL
  EMULATION,ROWS,COLUMNS,NULS

  AceComm fills in the ROWS,COLUMNS,NULS fields automatically when building
  IEMSI data packets.

                       Example CRTDEF: AVT0,24,80,0

  TERMINAL EMULATION
  Video type
                              AVT0        (AVATAR/ANSI)
                              ANSI
                              TTY
  ROWS
         Video rows for current session only
  COLUMNS
         Video columns for current session only
  NULS
         00h character required after line feeds.


Protocols

  ╔═Protocols═════════════════════════╗
  ║ZedZap (Zmodem to 8k)        Yes  ║
  ║ Zmodem                       Yes  ║
  ╚═══ Select  Quit ┤<>v^├════════════╝

  AceComm internal protocols support ZMO,ZAP fields.

  ZMO is normal zmodem

  ZAP is zmodem with up to 8k data frames.


Capability    (current session only)

  ╔═Capabilities══════════════════════╗
  ║Can do full screen chat      Yes  ║
  ║ Can handle TAB characters    Yes  ║
  ║ Can handle 8-bit characters  Yes  ║
  ╚═══ Select  Quit ┤<>v^├════════════╝

  CHT       Can do full screen on line conversation (CHAT)

  TAB Can handle TAB (ASCII 09h) characters AceComm supports TAB

  ASCII8    Can handle 8-bit IBM PC ASCII characters


Requests      (current session only)

  ╔═Requests══════════════════════════╗
  ║Show bulletins,announcements Yes  ║
  ║ Check for new mail           Yes  ║
  ║ Check for new files          Yes  ║
  ║ Hot-keys                     Yes  ║
  ║ Screen clearing              Yes  ║
  ║ Do not disturb               Yes  ║
  ║ Page pausing, `More`         Yes  ║
  ║ Full-screen editor           Yes  ║
  ╚═══ Select  Quit ┤<>v^├════════════╝

  NEWS      Show bulletins, announcements, etc.

  MAIL      Check for new mail

  FILE      Check for new files

  HOT       Hot keys "ON"

  CLR       Screen clearing

  HUSH      Do not disturb

  MORE      Page pausing, often referred to as "More"

  FSED      Full screen editor


AceComm contains internal Xmodem, Xmodem 1k, Ymodem, Ymodem 1k, Ymodem G,
Zmodem, and a Zmodem variant ZedZap (8k).


Internal Batch Capable
----------------------
Batch protocols receive the incoming filenames as part of the file data sent
from the sender.  AceComm will append filenames received from the remote sender
to the directory path contained in the PRM-data area under "FILES".


Internal Single File
--------------------
Single file protocols require a filename be given locally, by the user.  The
user is prompted for a filename between the menu selection and calling the
internal protocol function.


Setup Menu Externals
--------------------
"Externals" are defined as menu selectable executable that will become
arguments to the <RunProgram> MACRO.

You may find it handy to assign some external protocols to a "Hot Key" from
inside PRM-data Key Definition menu.

┌─ External Protocols (DnLd) ────────────────────────────────
│ <RunProg>BIMODEM /L%P /R[DIR_DNLDS] Bimodem.Pth
│ <RunProg>HSLINK -P%P -U[DIR_DNLDS] @UPLDS.LST
│ <RunProg>MPT P%P N+ F+ R+ R [DIR_DNLDS]
│ <RunProg>JMODEM %PF %WK
│ <RunProg>DSZ port %P speed %B rz -mrr [DIR_DNLDS]
│
│
│
│
│
└─ Edit  Select  Quit ┤<>v^├─────────────────────────────────


Auto Engaging Menu
------------------
Auto engaging protocols have sending units that begin by sending a documented
sequence of characters.  AceComm allows up to 10 separate sequences be defined,
and associates each sequence with a MACRO STACK.  the MACRO STACK can be setup
to call the external protocol associated with the sequence.  "AutoDnLds" is
documented in more detail above.  Shown below is a snippet reminder display.
You can enter high ascii characters by holding down the ALT key and typing from
the keypad.

╔═Auto Engage Protocols════════════════════════════════════════════════════
║═Trigger Sequence -- Responding Macro Stack═══════════════════════════════
║rz^M**              <RecvZmo>
║ HS*^B               <RunProg>HSLINK -P%P -U[DIR_DNLDS] @UPLDS.LST
║ ┬Θ═∩Σσφ             <RunProg>BIMODEM /L%P /R[DIR_DNLDS] Bimodem.Pth
║ MPt ^V^H            <RunProg>MPT P%P N+ F+ R+ R [DIR_DNLDS]
║
║ **EMSI_REQA77E      <SendEMSI_CLI>
║ **EMSI_IRQ8E08      <SendEMSI_ICI>
║═Pre/Post AutoM Macros════════════════════════════════════════════════════



Recv Mail / File Request
------------------------
"File Request" is a point mail function.
Selecting File Request function will bring up the menu below if the PRM-data
directory field for NODELIST.


╔═════════════════════════════════════════════════════════════════════════
║1:114/35
║ Format=> ZONE:NET/NODE
║═Boss Data Menus═════════════════════════════════════════════════════════
║  Boss Name               AceComm Support BBS
║  Boss Addr               1:114/35
║ Boss Phone               1-602-846-2940
║   Boss Pwd               password
║
║
║ c:\fil\NLIST.IDX
║ c:\fil\nodelist.063
╚═ Enter_address  Boss_call  Next_boss  Quit ┤<>├═══════════════════════

 This menu prompts the user for a ZONE:NET/NODE number of the system we want to
 call.

╔════════════════════════════════════════════════════╗
║    System Name MGP_Programming_Services            ║
║           City Phoenix_AZ                          ║
║  Operator Name Michael_Phelps                      ║
║   Phone Number 1-602-846-2940                      ║
║      Baud Rate 9600                                ║
║          Flags V32                                 ║
║       Password mailman                             ║
╚═ File_Request  Human_call  Poll_for_Mail  Quit ════╝

 Notice the "Phone Number" field contains a long distance number.  The
 following "Dial Filter" statement" contained in "Phone Number Modifier" menu
 is used to convert the phone number to a local number.
      1-602-
       (A)        (B)
 Explanation: Field (A) defines what to look for in phone numbers Field (B)
              defines what to replace field (A) with.  Here we left field (B)
              blank.  AceComm then replaces "1-602-" with nothing.

 Notice the "Password field.  The following "Password" definition was made in
 "Point Mail Setup" menu.
      1:114/35 mailman

 The selector bar at the bottom of the above menu contains several choices.
 The first being "File Request".  Selecting "File Request" produces the
 following screen.

 ╔═Input Window═════════════════════
 ║══════════════════════════════════
 ║FileName:  files
 ╚══════════════════════════════════

 AceComm is prompting for file names.  The example uses the file name "files".
 Many systems will recognize "files" as a MAGIC file name, and send an "all
 files listing" for the system in response.  Pressing <ENTER> alone when
 finished entering file names causes AceComm to begin dialing the target
 system.

     ╔══Record Number 1:114/35══════════════════════════════════
     ║     System Name   MGP_Programming_Services
     ║     Phone Number   1-602-846-2940
     ║     Line Control   9600L,8N1
     ║       Video Type
     ║ Control Flags
     ║      Dial Prefix
     ║     Log on Script
     ║     Capture File
     ║         Password   mailman
     ║    Load KBD File
     ║  Log on triggers
     ║═Last Connect  --   Total Connects ═══════════════════════
     ║ 0
     ║═Cycles     --      Dial String                       Last
     ║   0                ATEQ0X4DT846-2940
     ║ 00:03    00:03     58
     ╚═│Quit│ <SpaceBar>-ReCycle ┤<>v^├═════════════════════════

----------------------------------------------------------------
 AceComm (tm) Version 1.85 -- Copr 1990,1994 by Michael G Phelps
**E
Attemping EMSI handshake
Press ESC key several times for BBS

AceComm Software Support, 1:114/35
Michael Phelps, Phoenix, AZ(602) 846-2940
 AceComm,  Version 1.85, , 38400, V32b,CM,XA
  Outgoing  D:\ACE\00720023.REQ
 File Info  7 04/05/1994 16:52
0        7        0 CPS        00:00:00        ZEOF
0        7        0 CPS        00:00:00        ZEOF
                 CPS                ZDATA
  Incoming  D:\ACE\mgp-soft.zi2
 File Info  16030 04/02/1994 19:26
                 CPS                ZFIN
No carrier detect
                 CPS                ZGHDR
----------------------------------------------------------------

AceComm uses it's text based display for the Point Mail protocol displays.

AceComm contains internal Xmodem, Xmodem 1k, Ymodem, Ymodem 1k, Ymodem G,
Zmodem, and a Zmodem variant ZedZap (8k).

Internal Batch Capable
----------------------
AceComm's internal "Batch" capable protocols are capable of sending from a
LISTFILE.  A LISTFILE is an ascii text file containing <CR> <LF> terminated
filenames.  One filename per line.  Filenames may contain a full DRIVE:\PATH
specifier.  AceComm looks in the current directory for a filename "UPLDS.LST".
When selecting any of the "Batch" capable internal sending units, AceComm will
always look for "UPLDS.LST", if the file exists, AceComm displays the following
screen.

 ╓─────────────────╖      AceComm always prompts to send the
 ║ Found UPLDS.LST ║   from the LISTFILE "UPLDS.LST", when the
 ║ Send contents?  ║   "UPLDS.LST" file exists in the directory.
 ║(Y)es/(n)o?:    ║   Pressing <CR> defaults to (Y)es, (n)o
 ╙─────────────────╜   brings up the regular file selection
                       menu.


 ╓───────────────────╖      If the (Y)es selection was selected,
 ║ UPLDS.LST         ║   AceComm will, after the transfer,
 ║ Delete this file? ║   present the menu at left, prompting to
 ║(Y)es/(n)o?:      ║   delete the LISTFILE, or leave it exist.
 ╙───────────────────╜



The "Regular file selection" menu (below) allows "on the fly" LISTFILE
creation.  The "on the fly" LISTFILE is not named "UPLDS.LST", but a temporary
unique filename is selected.  "On the fly" LISTFILE is deleted after transfer
without any prompt.

     ╓─Make Uploads List────────────────╖
     ║Batch Tag                        ║
     ║ Manual entry                     ║
     ║ Finished  /  ESC-key             ║
     ╙─ Select  Quit ───────────────────╜

        Batch Tag

        This selection brings up the "FileLister" menu.  This menu allows
        tagging filenames to the LISTFILE.  PRM-data DIR "DNLDS" is the default
        directory displayed by "FileLister" when called by the "Sender
        Protocols" menu.


        Manual entry

        The menu below is presented with the "Manual entry" selection.

  ╓─Make Uploads List─────────────────╖
  ║ Batch Tag                         ║
  ║╓─Input Window───────────────────────────────────────────────
  ║║FileName:  c:\fil\
  ╙║─Input Window<ENTER> alone when done────────────────────────
   ╙────────────────────────────────────────────────────────────
  The "Manual entry" filename prompt pre pends the prompt space with any PATH
  found in PRM-data DNLDS field.


  "Batch Tag/ Manual entry" are recorded to a temporary unique LISTFILE as
  explained above.  Temporary unique LISTFILE is automatically deleted after
  use.


Single File
-----------
AceComm's internal protocols that send 1 filename per invocation use the
"Manual entry" window shown below.

  ╓─Input Window───────────────────────────────────────────────
  ║FileName:  c:\fil\
  ║─Input Window<ENTER> alone when done────────────────────────
  ╙────────────────────────────────────────────────────────────


External Protocols
------------------
This selection brings up a menu listing up to five configurations for external
protocol setup/selection.  This menu allows storing configurations for external
protocols to be used.  The menu storage below functions the same as any MACRO
stack assigned to a key press.  Here you have a menu where you may find it
easier to to store specific upload protocol definitions.

 ╓─ External Protocols (UpLd) ──────────────────────────────────
 ║<RunProgram>BIMODEM %WK
 ║ <RunProgram>HSLINK %PF %WK
 ║ <RunProgram>MPT S @UPLDS.LST %WK
 ║ <RunProgram>JMODEM S %PF %WK
 ║ <RunProgram>DSZ sz %PF
 ╙─ Select  Edit  Quit ─────────────────────────────────────────


Send Mail / File Attach
-----------------------
  This selection allows the user to send files to EMSI capable mailer
  software.  The menu shown below prompts the user for a FIDONET style
  ZONE:NET/NODE number.

 ╓───────────────────────────────────────╖
 ║                                      ║
 ║ Format =>  ZONE:NET/NODE              ║
 ╙───────────────────────────────────────╜

  The number is required for naming a LISTFILE.  LISTFILE in this mode uses
  "FLO" file extension.  AceComm allows normal Tag or manual entry when adding
  filenames to LISTFILE.  Those who want to "File Attach" or are running under
  a HOST as a point mail system will use this option.  Point mail operators may
  upload their mail bundles with this "Send Mail" selection.  AceComm requires
  a NODELIST or FBL output .NOD file when using "Send Mail/Attach".  AceComm
  uses the ZONE:NET/NODE number entered above for looking up system information
  about the HOST to be called.  AceComm is able to retrieve the phone number
  and system name from NODELIST/.NOD files.

  
The Telephone Directory Area lists binary .FON files in their full ASCII
representation.  The current loaded .FON file is identified at the top of the
menu.  Notice that the number of records contained in the '1_114.FON' file is
presented at the top right.  .FON files are not fixed to any certain record
size, and can have records added or deleted, from here, in the Directory list
area.  Maximum record count for a FON file is 1000 records per FON file.
AceComm supports unlimited FON files, and provides easy directory List/Grab
function for changing FON files.

Dial
----
  Dial the "highlighted" record.  The function continues dialing until:

     (a) a connection has been established

     (b)  USER ABORT.


Edit
----
  Another menu contains the "highlighted" record's data is presented for
  editing, or just a closer view.  All changes are automatically save to disk.


<SP>-Que
--------
  Mark the "highlighted" record for 'RedialQue'.


Circling_Queue
--------------
  Switch into The 'Que' Menu.  At least 1 record needs be marked "Queued" for
  AceComm to present this area.  From the 'Que' Menu, 'Dial' goes into single
  dial mode, and each record is dialed 1 time, followed by the next record
  until all records in the 'Que' have been dialed.  The 'Que' then revolves
  around to the first record and begins again.  When a connection has been
  established, the record is removed from the 'Que'.

╔═ Circular_Redial_Que D:\ACE\1_114.FON, 6 Records══════════════
║═      System Name            Phone Number     Line Control Vid
║14  Artemis Lair bbs         1-602-841-4474     9600,8N1    A
║ 15  Astroland                1-602-381-8708     9600,8N1    A
║ 16  Bob's Place BBS Node 1   1-602-497-2173     2400,8N1    A
║ 17  Bob's Place BBS Node 2   1-602-545-8745     9600,8N1    A
║ 18  Broadcaster's BBS        1-602-872-9148     9600,8N1    A
║ 19  CADE BBS                 1-602-931-3468     2400,8N1    A
║  Dial  Edit  <SPACEBAR>-Zap  Telephone_Directory
╚═ Add_record  Remove_record  UnMark_All  Import  Paint  Quit ┤<


Fon_files
---------
  List PRM-data directory .FON, allow selection of new .FON file


Sort
----
  ┌─Sort FON file by ?─┐
  │Number of calls    │
  │ Last date called   │
  │ System name field  │
  │ System number      │
  └─── Select  Quit ───┘


Options
-------
      ╔═Dialing Options═══════════════════════════════╗
      ║Inter byte delay                         4    ║
      ║ Modem Response Timeout when dialing      65   ║
      ║ Seconds between re-dial                  1    ║
      ║ DTR state between re-dial                Off  ║
      ║ Ring BELL on Dial/Connect                1    ║
      ║ Hide PWD when dialing                    No   ║
      ║═Menus═════════════════════════════════════════║
      ║ Phone Number Modifiers                        ║
      ╚═══(Select) Quit  Help ┤<>├══════════════════╝
   ╔═Phone Number Modifiers═════════════════════════════════╗
   ║═Translate══════════════════════════════════════════════║
  ╔║ Translate 1-602-846-4563 1-602-846-2940                ║
  ║║ Translate 1-602-292-0997 1-602-292-0997                ║
  ║║ Translate                                              ║
  ║║ Translate                                              ║
  ║║ Translate 1-602-                                       ║
  ║║═Long Distance Detect═══════════════════════════════════║
  ║║Long Dist 1-                                           ║
  ║║═Replaceables═══════════════════════════════════════════║
  ║║ !                                                      ║
  ╚║ @                                                      ║
   ║ #                                                      ║
   ║ $                                                      ║
   ╚═══(Edit) Quit ┤<>├═══════════════════════════════════╝

See the sub chapter  "Dialing Options".


Type_#
------
   Manual dial. Enter a phone number to de dialed. Does not get in the
   .FON file.


Add_record
----------
  Function appends a new record to the current loaded .FON file, and
  immediately brings up the 'Edit' Menu.  The new record is automatically
  saved.


Remove_record
-------------
  The "highlighted" record is removed from the current loaded .FON file.  No
  hole is left, the .FON file is reduced a 'record size' in bytes.


Mass_Change
-----------
  ┌─Mass Change FON Records─┐
  │     Dial Prefix        │
  │         Password        │
  │    Load KBD File        │
  │     Line Control        │
  │       Video Type        │
  │    Flags Control        │
  │       UnMark All        │
  └─── Select  Quit ┤<>├──┘

  All records in a FON file can be updated at one time, with individual record
  member updates.


Import
------
  o Convert another software's FON type file to AceComm FON file.

  o Merge two AceComm format FON files into one file.

  o Initialize a new FON file of video rows number of blank records.

  "Import" selection brings up the FON file conversion menu displayed below.
   The menu provides the following functions.

            ╔═Covert to AceComm FON══════╗
            ║                            ║
            ║  BOYAN    5                ║
            ║  Qmodem   4                ║
            ║  Qmodem   5                ║
            ║  Procomm  2.43             ║
            ║  PcPlus   1                ║
            ║  PcPlus   2                ║
            ║  Telemate 3.01 - 4.12      ║
            ║  TELIX    3.15 - 3.21      ║
            ║  Combine 2 Ace FON         ║
            ║  Create blank FON          ║
            ║ FON to PRN/File           ║
            ╚═══ Select  Quit ┤<>├═════╝


Paint
-----
  Customize the current menu only.  All changes are saved automatically.
  AceComm allows "Paint" for all but the "Phone List" and "Phone Dial/Edit"
  menus from inside the PRM-data area. "Phone List" and "Phone Dial/Edit"
  menus are paintable from their respective menus.


System Name            AceComm Software Support
-----------
  The name defined here, is presented onto the revolving status line (right
  side of status line) when "on line".


Phone Number           1-602-846-2940
------------
  This phone number, although long distance, can be modified by AceComm when
  dialing, with use of "Translate" statements in the "Dialing Options" Menu.
  LFD flag must be set. (see "Flags" below)

  Example: lets say we are local Phoenix, where our area code is 602, we have
           an entire phone directory of long distance numbers.  The following
           dial statement defined inside "Point Mail Setup" will cause AceComm
           to translate all of the long distance numbers to local numbers.

           Dial 1-602-

           AceComm will see this definition and translate it into anything
           following the definition.  In this case, we did not put anything
           after the "1-602-", so AceComm will strip "1-602-" from all phone
           numbers that contain "1-602-" as part of the number.  This is valid
           for all phone numbers that are processed thru the AceComm Dialer
           Menu.  Mailer mode, File Requests which get their phone numbers from
           either a FIDO NODELIST, of FBL output .NOD file do use the Dialer
           Menu and do receive number translation from "Dial" statements.


Line Control           19200,8N1
------------
   Hi-speed mode users do not need to bother with the speed setting.  Typically
  you will leave your port locked at 19200 or faster.  AceComm does not alter
  the baud rate setting when the LOCKBAUD flag is set.  LOCKBAUD flag is
  located inside the "Serial Port Setup" "Line Control" menu.

  Most remote HOSTS will be set up using 8 data bits, No parity, and 1 stop
  bit.  Compuserve uses 7 data bits, Even parity, and 1 stop bit.  AceComm will
  configure the UART to assemble the in coming bit stream into characters,
  based on the configuration defined here.  Baud rate means nothing when
  LOCKBAUD is set, as is with the "L" appended to baud in this example.  Other
  wise, when LOCKBAUD is not set, AceComm will set the UART up to the
  Fon.Record baud rate.

  Note: When LOCKBAUD is not set, AceComm is also capable of resetting the baud
        rate to a connect string.  If you dial out at 2400, and connect at
        9600, and 9600 is detected in the the connect string, AceComm will
        automatically set the baud to 9600.


Terminal Emulation     Av/An
------------------
  This option will present the Terminal emulations menu, you may select the
  video ,type you want associated with this record.  "Av/An means AVATAR and
  ANSI video emulation.


Control Flags     Macro,DTag,Cap,Text,IEMSI,AutoL,+CR,LDF
-------------    Script,         Raw,

       ╔═   Control Flags═════════════════╗
       ║Tag dial attempts    On          ║
       ║ Auto log on method   Macro,      ║
       ║ Open Capture file on Off         ║
       ║ Capture mode         Text,       ║
       ║ Allow IEMSI log on   On          ║
       ║ Allow auto log on    On          ║
       ║ Add CR to LF         Off         ║
       ║ LD Filter            On          ║
       ╚═══ Edit  Quit ┤<>├═════════════╝


  "Script"  when  set,

  AceComm will attempt to load and run the filename defined next to "AutoLogOn
  Script".  If a script file is not found, AceComm ignores the error and
  continues normal operation.  Notes: .SCR files are looked for in the
  directory defined inside PRM-data Area "SCR" sub directory.


  "Macro"  when  set,

  Use Auto Log On "Trigger Sequence / Macro Stack"
  AceComm will enable the defined Auto Log on Sequence Triggers and
  corresponding MACRO stacks. (see below)

╔═Auto Log On Technology═════════════════════════════════════════════════════╗
║═Trigger Sequence -- Responding Macro Stack═════════════════════════════════║
║is your name:       <SendStr>[USER_NAME]^M~Y^M~[FON_PWD]^M                 ║
║ Your FIRST name:    <SendStr>[USER_NAME]^MY^M~[FON_PWD]^M                  ║
║ Host Name:          <SendStr>CIS^M~~[FON_ID]^M~~[FON_PWD]^M                ║
║ first name ?        <SendStr>[USER_NAME]^MY^M[FON_PWD]^M                   ║
║ and LAST name:      <SendStr>[USER_NAME]^M~^M~[FON_PWD]^M                  ║
║ last name?          <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ first name?         <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ (First and Last)    <SendStr>[USER_NAME]^M~~[FON_PWD]^M                    ║
║ full name?          <SendStr>[USER_NAME]^M~^M[FON_PWD]^M                   ║
║                                                                            ║
║                                                                            ║
║═Case  Off══════════════════════════════════════════════════════════════════║
╚═══(Edit) Toggle_Case  Quit  Help ┤<>├════════════════════════════════════╝


  "DTag"  when  set,

  AceComm will tag un-successful dial attempts (busy, etc.) to the Que Dialer.
  An "" character appears to the left of a Fon.Record's display line.  When
  this flag is not set, the only other way to tag a record is by manually
  selecting the menu option "<SPACEBAR>-Que" from the fon list display.

 "Capture"

 When this flag is selected, a capture file is opened upon Dial/Connect.  Any
 previously open capture file is first closed.


 "Raw"  when set,

 Data to capture file is as it comes in from the modem


 "Text"  when set,

 Data to capture file is filtered of video control codes as applicable to the
 current Video type


 "IEMSI"

 Allow Interactive EMSI log on


 "AutoL"

 Allow auto log on methods (script/macro)

 "+CR"

 Add Carriage return to line feeds

 "LDF"

 Use Long Distance Filters
 Phone numbers will be scanned against those found under the "Translate" option
 located inside "Phone Number Modifiers" menu.

   String on left is replace with string on right
   Example for changing long distance numbers into local numbers
      1-602-    |
      |         |
      |         |_________________
      |                          |
      This will be replaced with this, stripping 1-602- from phone numbers
      Note: LDF flag must be set ON for any Fon.Records you want Translation
            to be used with. LDF can be set ON or OFF for an entire FON file
            all at once from inside the "Mass Updates" menu located inside
            the Phone list menu area.





Dialing Prefix
--------------
  The Fon.Record dial prefix overrides The PRM-data default prefix.  If this
  field is null (blank), AceComm uses the PRM-data default dial prefix.


AutoLogOn Script       ACE_S.SCR
----------------
  When SCRIPT flag is set, for the current Fon.Record, AceComm will use this
  filename, opening it as a SCRIPT file, and run the contents.  This action
  takes place upon successful Dial/Connect.  If the filename does not exist,
  AceComm simply goes about it's business, and you will log on normally.
  AceComm will look for the SCRIPT filename in PRM-data DIR .SCR path.

  See also: Expandable Macro Parameters <SendStr> [FON_SCR]


Capture File           ACE_S.CAP
------------
  Default filename presented to user when opening a "capture data to file"
  file.

  <SendStr> [FON_CAP]
  See also: Expandable MACRO Parameters


Password               my/password
--------
  You may define the Fon.Record PASSWORD field to any character combination,
  the field maximum length is 19 characters.

  <SendStr> [FON_PWD]
  will replace "[FON_PWD]" with "my/password" for this example.
  See also: Expandable MACRO Parameters


Alias               Michael Phelps/AceComm
-----

  <SendStr> [FON_ALIAS]
  See also: Expandable MACRO Parameters


ID                 75120,3306
--

  <SendStr> [FON_ID]
  See also: Expandable MACRO Parameters


Custom .KBD File       CUSTOM.KBD
----------------
   You can ask AceComm to load a custom key board definition file upon
   Dial/Connect for the Fon.Record. This is not video related.

  AceComm will first remember what the current "KBD" filename is, load the
  Fon.Record's custom "KBD" file, if defined, and finally restore the original
  KBD file after session disconnect.  Say What?

  You are about to log onto Compuserve.  You have CIS.KBD file defined for the
  Fon.Record.  When dial/connect is detected, AceComm will load the contents of
  CIS.KBD, overlaying your current keyboard MACRO assignments.  When you log
  off of Compuserve, and AceComm detects the carrier drop (no DCD), AceComm
  will load back the original keyboard file, overlaying your custom CIS.KBD.

  You will need to distinguish KBD files from KTS files.  Where a KBD file
  overlays the keyboard MACRO assignments.  The KTS file defines the ultimate
  sequence that will be sent to the modem for a given key-press.  Keys assigned
  a MACRO, are processed as MACRO functions.

  Keys not assigned a MACRO(s) will be sent to the modem, and are candidates
  for KTS.

  Keys with extended codes, are sent as they would be seen in DoorWay mode.
  Normal keys (a-z,A-Z,1-0,CTRL A-CTRL Z, etc.) are sent in their normal lower
  ascii representation (as you would expect).  Now, any of these key-presses
  that have been defined inside the KTS file, are translated into their defined
  sequence.  AceComm & Utilities provides ASCII examples for compiling KTS
  files, as well as KTS.EXE the custom Keyboard Sequence Translation (Tm)
  compiler.


Log on Triggers
---------------
  AceComm will respond to a sequence trigger by processing the MACRO stack.
  Log on sequence trigger scanning is available immediately after connect, and
  until the sequence has been found.  When a log on sequence has been
  processed, AceComm stops scanning for the log on sequence.  Auto logon method
  can be set in the flags menu.


o AceComm will process a macro stack based on the Answer/Connect string

o Auto Answer can be an EVENT, see "Event Scheduler" menu

o See the notes at the end of this chapter about <AutoAnswer> macro

This setup is available upon Asnwer/Connect, only if a Schedule is active and
include ",Host" as an attribute flag.

╔═Auto Answer Setups════════════════════════════════════════════════
║═Answer/Connect - Associated macro stack═══════════════════════════
║CONNECT
║ <ChgDir>C:\BBS <RunProg>BBS %P %C <ChgDir>[DIR_START]
║═Answer/Connect - Associated macro stack═══════════════════════════
║ FAX
║ <RunProg>BGFAX /FAX %P Z
║═Answer/Connect - Associated macro stack═══════════════════════════
║ CARRIER
║ <ChgDir>C:\BBS <RunProg>BBS %P %C <ChgDir>[DIR_START]
║═Default macro stack═══════════════════════════════════════════════
║ <ChgDir>C:\BBS <RunProg>BBS %P %C <ChgDir>[DIR_START]
╚═══(Edit) Quit  Help ┤<>├════════════════════════════════════════

Answer/Connect
--------------
   The sub-string will be looked for in the actual modem response string upon
   Answer/Connect Strings are currently case sensitive.


Associated macro stack
----------------------
   Macro stack will be processed on "sub-string" found


Default macro stack
-------------------
   Macro stack to process when sub-string search fails




<AutoAnswer> macro

The <AutoAnswer> macro is callable with or without a parameter.
Valid parameters are "ON", "OFF", NONE (no parameter)
No parameter to the <AutoAnswer> macro results in toggle.

<AutoAnswer>ON          Turn auto answer mode ON
<AutoAnswer>OFF         Turn auto answer mode OFF
<AutoAnswer>            Toggle auto answer mode

Auto answer mode on, with no schedules will cause AceComm to answer the modem
when the phone rings. You will the terminal area.
<AutoAnswer> is provided for simple answer, call back verify etc. You cannot
gain access to the above "Auto Answer Setups" this way. You must use the
scheduler and ",Host" flag to access "Auto Answer Setups".

This is how to access the "Auto Answer Setup" functions.
For AceComm to check the "Auto Answer Setup" upon Dial/Connect, a schedule with
the ",Host" attribute must be active.

╔═Event Schedules═════════════════════════════════════════════════════════════
║═Active = No═════════════════════════════════════════════════════════════════
║Event 0:0-2:0,Mail,Host
║ Macro
║ Event 2:0-3:0,Mail,LD
║ Macro
║ Event 3:0-7:30,Mail,Host,ld
║ Macro
║ Event 7:30-12:00,Mail,Host
║ Macro <ChgDir>d:\mail <RunProg>COMMAND /c renum.bat <ChgDir>[DIR_START]
║ Event 12:0-17:20,Mail,Host,ld
║ Macro <ChgDir>D:\MAIL <RunProg>QM scan pack <ChgDir>[DIR_START]
║ Event 17:20-20:0,Mail,Host
║ Macro
║ Event 20:0-23:45,Mail,Host,ld
║ Macro
║ Event 23:45-23:59,Mail
║ Macro
║ Event 0:0-0:0,
║ Macro xxx
╚═══(Edit) Active  Quit  Help ┤<>├══════════════════════════════════════════
AceComm will watch the clock for any event start times.  When an event rolls
around the associated macro stack, if any will be processed.

,Mail
-----
",Mail" events tell AceComm that it is ok to process any *.FLO files contained
inside the "MAIL_OUT" directory.
,Mail events by themselves (no ,Host) will cause the "Point Mail" "Mail Only"
macro stack to be processed upon detection of a human (BBS) caller. In other
words, ,Mail only events will not allow any but mail calls. The "Mail Only"
macro stack is provided as a hook into the situation. You can choose to
display a message saying that you are not currently accepting BBS calls, or
you can beat the system and run some other host software, or host script.
In any event. When a non-mail call is detected with ",Mail" but not ",Host"
attributes for the currently active schedule, AceComm runs the "Mail Only"
macro stack.

,Host
-----
",Host" events tell AceComm it is ok to Auto Answer the line when RING is
detected.  AceComm uses the UART RING bit and modem status change for detecting
RING.
This is how to access the "Auto Answer Setup" functions.
For AceComm to check the "Auto Answer Setup" upon Dial/Connect, a schedule with
the ",Host" attribute must be active.

(See Auto Answer Setups for more information about Auto Answer)


,LD
---
Long distance calls are allowed with this flag. AceComm detects long distance
phone numbers by checking the "Long Distance" field defined inside "Phone
Number modifiers" menu.
You can defeat the ",LD" requirement for long distance calls by un-defining
the "Long Distance" detection.


o  "User Menus" can be used to group similar macro stacks
   together into one menu

o  "User Menus" can be assigned to a hot key and popped up any time from the
   Terminal Area.


"User Menus" were designed to offer a means for grouping common macro stacks
into menus.  I wanted to be able to create, change menus and menu items at
will, as my on line needs changed.  "User Menus" allow this sort of
configuration flexibility.


Master "User"
   Below is the "User Menu" Master menu.  (macro is <Users>) A
   key-press may be assigned the <Users> macro as a hot key for

   this menu.  It lists all five "User" style menus available.

   Each individual "User Menu" can be assigned a hot key.

F10 =  │ File │ Setup │ Phone │ Transfer │ Users │ Help │
                                         ┌──────────────────────┐
                                         │1  CIS Functions     │
                                         │ 2  OffLine Reader    │
                                         │ 3  User Menu #3      │
                                         │ 4  User Menu #4      │
                                         │ 5  User Menu #5      │
                                         └── Select  Quit  Help ┘
   Here the first two menus have been given titles.  The titles were entered
   from the setup menu discussed later on.

   The following macro can be used for the five "User Menus".
   You give the macro a parameter in the range of 1 - 5.
      <User>1
      <User>2
      <User>3
      <User>4
      <User>5

   To assign a hot key to the "User Menu" labeled "CIS Functions", go into the
   PRM-data area "Key Setup" menus and assign a key press to the <User>1 macro.

   Example:  F11 <User>1

   Each "User Menu" has a title and seven function slots.


A "User Menu"

   Below is a "User Menu".

F10 =  │ File │ Setup │ Phone │ Transfer │ Users │ Help │
                                        ┌─CIS Functions─────────┐
                                        │CIS Forums Script     │
                                        │ CIS Bill Script       │
                                        │ Compose Message       │
                                        │ IBMPRO Forum 2 File   │
                                        │ IBMCOM Forum 2 File   │
                                        │                       │
                                        │ CIS Msg Reference     │
                                        └─(Select) Edit  Quit ──┘



Setup "User"

   Below is the Setup menu for creating "User Menus".

┌─User Menus────────────────────────────────────────────────────────────
│─Title field───────────────────────────────────────────────────────────
│- CIS Functions
│─Description / Associated macro stack pairs────────────────────────────
│ / CIS Forums Script
│ \ <RunScript>cisforum.scr
│ / CIS Bill Script
│ \ <RunScript>cisbill.scr
│ / Compose Message
│ \ <SendAscii>%P
│ / IBMPRO Forum 2 File
│ \ <SendStr>go IbmPro^M <OpenCapture>ibmpro <Delay>7 <SendStr>Read New^M
│ / IBMCOM Forum 2 File
│ \ <SendStr>go IbmCom^M <OpenCapture>ibmcom <Delay>7 <SendStr>Read New^M
│ /
│ \
│ / CIS Msg Reference
│ \ <RunProg>List cis_msg.ref
└───(Edit) Quit  Help ┤<>v^├─────────────────────────────────────────────

Title field

   The Title field is 15 characters long, this will be the title that appears
   in you "User Menu".

Description / Associated macro stack pairs

   "Description" fields are 20 characters, these will become the menu choices
   displayed from your "User Menu".

   "Associated macro stack" fields are 80 characters, these are the actions
   that take place when you select a "Description" choice.



Automated and Un-attended Mailer Services
-----------------------------------------
AceComm provides in the Schedule Setup menu, a means for controlling the times
of day that "Host Mode", and "Mail Services" take place.  The Scheduler can
limit long distance calls to strict time lines.  The scheduler provides 9
separate time schedules.  Each schedule may have 0 or more attribute flags.  A
schedule is define with a start time, a stop time, and what activities are
allowed during the schedule's time frame.  It not necessary to define any extra
activities to make use of the schedules.  Each schedule has an associated macro
stack.  The macro stack is processed when the schedule begins.  This can
provide a timed sequence of events.  You can configure the scheduler to do a
great number of automated and un-attended tasks at their pre-set times.  If
AceComm is started in the middle of an active schedule, the macro stack is
still processed.

We can give any schedule a ",Mail" attribute flag, and or ",Host, and or
"LD".  "LD" means long distance calls are allowed.  AceComm will look in the
MAIL_OUT directory for mail needing to be sent.  Out going mail files contain
their address built into the filename.  AceComm can find the phone number for
each system by looking up the address.  AceComm will look first at the 5 "Boss
Data" fields.  If an address is not found there, AceComm looks in the FidoNet
Nodelist file.  A utility IDX.EXE is provided as an index builder for the
Nodelist.  IDX.EXE crates a filename NLIST.IDX for the Nodelist file.
NLIST.IDX is a simple binary table of indexes into the Nodelist file.  This
allows AceComm to find a Zone:Ne/Node number very quickly.

Schedules that have the ",Mail" attribute, are allowed to dial out if out
going mail exists. ",Mail" is allowed to answer the phone. ",Mail" is not
allowed to allow human (BBS) callers. ",Mail" can send and receive mail. If a
mail call comes in during a ",Mail" only schedule, the session is allowed. If
a human (BBS) caller is detected, a macro stack is run. The macro stack is the
"Mail Only" macro stack. This is configurational in the above menu. It is
contained under the "Macros to run at:" window. Add ",Host" attribute flag
for human (BBS) callers to be allowed during ",Mail" schedules. What happens
if you have a ",Host" attribute and no ",Mail" for the schedule. AceComm will
still allow mail calls. AceComm may dial out as well. There is another flag
that allows out going mail.

Full Time Point
---------------
Located in the "Options" menu below is the "Full Time Point flag.  The flag
exists so that point mail services may operate when schedules are not enabled,
or there is no current schedule active.  Point mail service do not except
calls.  Point mail services are for calling out.  Point mail services will not
call out when long distance numbers are detected, and an active schedule does
not have the ",LD" attribute.  The key here is "detected".  If you do not want
to use the scheduler, and would like to make long distance file requests, you
can un-define the long distance detection.  In the "Phone number Modifiers"
menu there is a single field for long distance number detection.  Simply erase
it.  AceComm will allow long distance numbers any time.

Confused? AceComm provides lots of flexibility to it's host and mailer
services. This comes with a price. The learning curve. It takes time to
become familiar with the different setup menus and how they interact. There
is plenty help available from the author and other AceComm pioneers.

Lets take a look at the "Point Mailer Setup" menu.
This menu contains almost all the mailer service setup. The scheduler has it's
own menu. Directories for "Nodelist", "Mail In", "Mail Out", are in the
"Directories In Use" menu., The "Long Distance Detect" is in the "Phone
Number Modifiers" menu.

╔═Point Mailer Setup══════════════════════════════════════════════════════════
║═Request Files═══════════════════════════════════════════════════════════════
║Request       REQUEST.LST
║ Files         MGP-SOFT.ZIP
║ About         ABOUT.FIL
║═Macros to run at:═══════════════════════════════════════════════════════════
║ Program start <DispStr>^L^M[BWhi][Blu] Install on port %P  ^M Initializing M
║ After Mail    <ChgDir>D:\MAIL <RunProg>QM toss <ChgDir>[DIR_START]
║ Mail Only     <HostEcho>ON <DispStr>^MAceComm will be available later tonigh
║═Boss Data Menus═════════════════════════════════════════════════════════════
║ AceComm Support BBS
║ Roberts
║ Gren
║
║
║═Sub Menus═══════════════════════════════════════════════════════════════════
║ EMSI Data
║ Passwords
║ Options
╚═══ Edit  Quit  Help ┤<>├══════════════════════════════════════════════════


Request Files
-------------

Request

   FILENAME    AceComm will look in this file for file requests.
               This file must contain full paths.
   Examples:   C:\ACE\FILES\ACE185A.ZIP
               C:\ACE\FILES\ACE185B.ZIP


Files

   FILENAME    When this File Request comes in, "Files", AceComm will send
               FILENAME.

About

   FILENAME    This file will be sent after any file requests. This will
               typically be a short description file for your system.


Macros to run at:
-----------------

Program start

   This macro stack is run when AceComm is first started.


After Mail

   This macro stack is run when AceComm has just finished receiving mail.


Mail Only

   This macro stack is run when the AceComm scheduler is in a ",Mail" but not
   ",Host" event.  ",Mail" only events allow EMSI mail sessions, but no access
   to the "AutoAnswer Menu" macros.  This is not to say that AceComm does not
   answer in ",Mail" only events.  There is a separate "AutoAnswer Setup" menu
   for BBS callers.  The service defined in this menu are not allowed except
   when schedules are enables, and ",Host" is an attribute flag for the
   currently active schedule.


Boss Data Menus
----------

o Boss data is used for mail Poll, Send, Request functions from inside the menu
   system (manual).  Automated mail functions require a NODELIST file and
   NLIST.IDX file.


   AceComm contains 5 separate data areas for User defined "Boss node" mail
   systems to dial.

   Use these when you don't want to use a NODELIST file, or as the second
   example, the system isn't in any NODELIST anyway.

  ╔═Edit Data════════════════════════════════════════════╗
  ║ Boss Name  AceComm Support BBS                      ║
  ║  Boss Addr  1:114/35                                 ║
  ║ Boss Phone  1-602-846-2940                           ║
  ║   Boss Pwd  password                                 ║
  ║  Boss Baud  38400                                    ║
  ╚═══(Edit) Quit  Help ┤<>├═══════════════════════════╝

  ╔═Edit Data════════════════════════════════════════════╗
  ║ Boss Name  Roberts                                  ║
  ║  Boss Addr  1:123/123                                ║
  ║ Boss Phone  1-214-123-1234                           ║
  ║   Boss Pwd                                           ║
  ║  Boss Baud                                           ║
  ╚═══(Edit) Quit  Help ┤<>├═══════════════════════════╝

  See also <PollBoss> macro




  ╔═EMSI Data════════════════════════════════════════════╗
  ║Address     1:114/35                                 ║
  ║ Aka                                                  ║
  ║ Aka                                                  ║
  ║ SysName     AceComm Software Support                 ║
  ║   SysOp     Michael G Phelps                         ║
  ║    City     Phoenix, AZ                              ║
  ║   Phone     (602) 846-2940                           ║
  ║    Baud     38400                                    ║
  ║   Flags     V32b,CM,XA                               ║
  ╚═══(Edit) Quit  Help ┤<>├═══════════════════════════╝


EMSI Handshake Data

   The following data is presented to the remote mail system during EMSI
   handshaking.

   Address         1:114/35

   Aka             123/123

   Sys Name        AceComm Support

   City            Phoenix, AZ

   Operator        Michael Phelps

   Sys Phone       (602) 846-2940

   Baud            14.4

   Flags          v32b

   Password  --  Pre arranged between two systems.

   The following example will cause AceComm to fill in the EMSI data field for
   "password" with 'mailman' when the target system's address is 1:114/12.

                  Password 1:114/12 mailman


   ┌─Example: 1:114/12 mailman───────────────────────────
   │   Password 1:114/35 acecomm
   │    Password 1:114/440 holdmail
   │    Password 1:114/12 mailman
   │    Password
   │    Password
   └─── Edit  Quit  Help ┤<>v^├──────────────────────────


Options Menu

╔═Options═══════════════════════════╗
║Min Scan           30             ║
║ Max Scan           1200           ║
║ Redials            2              ║
║ Full Time Point    On             ║
╚═══(Select) Quit ┤<>├════════════╝

Min Scan                Time between mail scans when mail exists
                        (seconds between dialing attempts)

Max Scan                Time between mail scans when last scan found no mail
                        (Seconds till we peak for mail)

Redials                 Times to re dial during a mail scan
                        Not to be confused with dialing attempts, the
                        re-dialer will dial "Redials" times before letting go
                        back to the main program. Where it will be "Min Scan"
                        time until the next dialing attempt.

Full Time Point         Allow point mail services when schedules are off
                        un-define long distance detect from inside "Phone
                        Number Modifiers" menu for long distance calls. Or
                        you have to enable schedule and have ",LD" and an
                        attribute to the currently active schedule.


The following menu is available from Terminal Area. <AutoAMenu_> is the macro
that runs this menu. The default key board has <AutoAMenu_> assigned to ALT M.

╔═1:114/35, AceComm Software Support═══════════════════════════════════════╗
║ BBS calls 0  Mail calls 0  Scan time 1200  Next scan 1199                ║
╚═══(Poll/FReq) Attach  Menu  Scan_now  Toggle_scheds  Quit ┤<>├════════╝
     |          |        |     |         |
     |          |        |     |         Enable/disable Schedules
     |          |        |     |
     |          |        |     Force a new mail scan
     |          |        |
     |          |        This menu choice brings up the "Point Mailer Setup"
     |          |        menu discussed above.
     |          |
     |          |
     |          Bring up the sending mailer services menu
     |
     Bring up the receiver mailer services menu




Mailer Systems Phone Directory (FidoNet Nodelist)
-----------------------------------------------
FidoNet Nodelist is a systems directory that most EMSI capable HOST systems
use.  AceComm can use a FidoNet Nodelist.  To use the FidoNet Nodelist, you
must first compile an INDEX file.  AceComm uses NLIST.IDX.  NLIST.IDX contains
a quick look up table for Zone:Net/Nodes in the FidoNet Nodelist.  The AceComm
package provides IDX.EXE as a utility to create the NLIST.IDX file.  NLIST.IDX
and the NODELIST are to be found inside of the PRM-data directory "NODELIST".


Automated Mail Services Requirements
------------------------------------
Automated (event driven) mail services require a NLIST.IDX,NODELIST.nnn pair be
present in the NODELIST directory, or you may define Boss node data.  There are
5 Boss data areas.

You need the "Full Time Point"flag turned on or the "Scheduler" to be in at
least ",Mail" mode, or both.  You need to understand the long distance
detection, and long distance phone number translation/filter.  These are
located in the "Phone Number Modifiers" menu.

When an Event Schedule declares ",Mail" as part of the event, AceComm will scan
the MAIL_OUT directory for *.FLO files.  FLO type files supported are:

    FLO  ; file attach
    CLO  ; continuous
    DLO  ; direct
    OUT  ; non archive version of above
    CUT
    DUT
    REQ  ; request

AceComm will begin looking in the Nodelist directory for a NLIST.IDX file and
associated NODELIST.nnn file.  If found, AceComm will look up the target
system, build a Fon.Record with the information, and begin dialing with intent
to send mail, file requests etc.  Any local systems will require a Dial filter
statement be defined so that AceComm can translate the long distance number (as
contained in the Nodelist) into a local one.

   The following dial statement filter "1-602-" from all phone numbers the
   string is found in.
                         Dial filter 1-602-
   This is setup as "Translation" numbers from "Phone Number Modifier" menu.


Making File Requests
--------------------

File Requests .REQ files are considered mail files, and processed in the same
way.  During a ",Mail" event, or with the "Full time Point" flag.  Files
received during a file request are placed into the MAIL_IN directory.

Filenames contained inside of FLO files, with exception to REQ files are to be
sent out to the target system.  Filenames that are prefixed with a '#'
character are made ZERO length after sending.  Filenames prefixed with '^'
character are deleted upon successful send.

The following has been taken from the "Protocols" menus section.  Receive/Send
Protocols sections present step by step through File Request and File Attach.


Recv Mail / File Request

  "FileRequest" is a point mail function.

╔═════════════════════════════════════════════════════════════════════════
║1:114/35
║ Format=> ZONE:NET/NODE
║═Boss Data═══════════════════════════════════════════════════════════════
║  Boss Name               AceComm Support BBS
║  Boss Addr               1:114/35
║ Boss Phone               1-602-846-2940
║   Boss Pwd               password
║
║
║ c:\fil\NLIST.IDX
║ c:\fil\nodelist.063
╚═ Enter_address  Boss_call  Next_boss  Quit ┤<>├═══════════════════════

 This menu prompts the user for a ZONE:NET/NODE number of the system we want to
 call.  If any "Boss Data" is defined, AceComm allows toggle through any of
 the 5 "Boss Data" fields, and selecting "Boss_call". Otherwise AceComm will
 look up a node address from the FidoNet Nodelist. Notice the bottom of the
 menu above displays where AceComm has found it's custom Nodelist index file,
 and FidoNet Nodelist file. If these are in correct, you need to go into the
 Configuration area, "Directories" menu.

 Upon selecting either "Boss Data" or entering a node number, AceComm will
 present the following screen. AceComm will search for any passwords defined
 inside the "Point Mail" menu. Long distance phone numbers are translated
 according with the "Translate" menu data.

 ╔════════════════════════════════════════════════════╗
 ║    System Name MGP_Programming_Services            ║
 ║           City Phoenix_AZ                          ║
 ║  Operator Name Michael_Phelps                      ║
 ║   Phone Number 1-602-846-2940                      ║
 ║      Baud Rate 9600                                ║
 ║          Flags V32                                 ║
 ║       Password                                     ║
 ╚═ File_Request  Human_call  Poll_for_Mail  Quit ════╝

At this point if the user selects "File_Request" , an input window will pop up
prompting for filenames.  "Human_call" will dial the phone number, but not
attempt any mail session.  "Poll_for_Mail" will allow a call, and mail session,
without having any mail to send.  See the <PollBoss>n macro.


Send Mail / File Attach

  This selection allows the user to send files to EMSI capable mailer
  software.


You can get into this area with the <FileList_> macro. The macro takes an
optional parameter.
   <FileList_>[DIR_DNLDS]
   <FileList_>C:\FILES

 ╔═D:\ACE═══════════════════════════════╗
 ║ 1_114.FON    26368   06/27/93 07:25 ║
 ║  ACE.ASM      8269    06/26/93 18:00 ║
 ║  ACE.CTL      13589   06/25/93 08:04 ║
 ║  ACE.EXE      196102  06/27/93 07:24 ║
 ║  ACE.FON      1600    06/27/93 04:13 ║
 ║  ACE.HLP      44572   06/27/93 07:09 ║
 ║  ACE.LOG      3694    06/27/93 07:29 ║
 ...
 ║  ACTL.ASM     101998  06/25/93 14:22 ║
 ║  Utility  New_Dir  Change_Drive      ║
 ╚═ Tag  Delete  Quit  Help ┤<>v^├══════╝

Utility
-------
  This selection brings up a sub-menu of pre-defined executable.  AceComm
  contains several sub-menus for this purpose.  Sub-menu selected is determined
  by the "highlighted" files's extension.  The %FN symbol is documented in
  MACRO.DOC.  %FN is an Expandable MACRO Function.  %FN argument to a MACRO
  from anywhere inside the "File Lister" menus is replaced with FULL PATH NAME
  for the current high lighted filename.

 ╔═C:\DOC═══════════════════════════════╗
 ║  A.SNA        1242    06/27/93 07:53 ║
 ║  ACE.BAK      117893  06/26/93 12:25 ║
 ║  ACE.CHA      2706    06/27/93 07:46 ║
 ║╔═%FN = C:\DOC\ACE.DOC══════════════════════════════════
 ║ ║ <RunProgram> BB %FN
 ║ ║<RunProgram> LIST %FN
 ║ ║ <RunProgram> QEDIT %FN
 ║ ║ <RunProgram> GREP %PF %FN %PF
 ║ ║ <RunProgram> PATCH %FN
 ║ ╚═ Select  Edit  Quit ┤<>v^├════════════════════════════
 ║  COVER        213     06/25/93 16:22 ║
 ║  CREDIT.CRD   2918    06/25/93 15:30 ║
 ...
 ║  FILE_ID.DIZ  392     06/26/93 13:14 ║
 ║  Utility  New_Dir  Change_Drive      ║
 ╚═ Tag  Delete  Quit  Help ┤<>v^├══════╝


New_Dir
-------
  Allows changing directories.  AceComm changes directories right along with
  the display.  When you use AceComm's "Utils" Menu, work is done in the
  currently listed directory unless otherwise redirected via MACRO arguments or
  overriding external executable configurations.

  Notes: AceComm always returns to the starting directory after leaving the
         FileLister Area.
                    ╔═D:\ACE═══════════════╗
 ╔═D:\ACE═══════════║D:\ACE              ║
 ║ 1_114.FON    263║ ..                  ║
 ║  ACE.ASM      826║ CAP                 ║
 ║  ACE.CTL      135║ CVTFON              ║
 ║  ACE.EXE      196║ FILES               ║
 ║  ACE.FON      160║ FON                 ║
 ║  ACE.HLP      445║ KTS                 ║
 ║  ACE.LOG      369║ MAIL                ║
 ║  ACE.MAP      920║ SCR                 ║
 ║  ACE.OBJ      271║ SND                 ║
 ║  ACE.PRM      378║ XTRA                ║
 ║  ACEBOX.INC   345║ ZEN                 ║
 ║  ACEM         253║ F                   ║
 ║  ACEORDER.FRM 588╚═ Select  Quit ┤<>v^├═╝
 ║  ACET.SCR     809     05/17/93 21:33 ║
 ...
 ║  ACTL.ASM     101998  06/25/93 14:22 ║
 ║  Utility  New_Dir  Change_Drive      ║
 ╚═ Tag  Delete  Quit   Help ┤<>v^├═════╝


Change Drive
------------
  Allows listing another drive.
 ╔═D:\ACE═══════════╔══════════════════════╗
 ║ 1_114.FON    263║A                    ║
 ║  ACE.ASM      826║ B                    ║
 ║  ACE.CTL      135║ C                    ║
 ║  ACE.EXE      196║ D                    ║
 ║  ACE.FON      160║ E                    ║
 ║  ACE.HLP      445╚═ Select  Quit ┤<>v^├═╝
 ║  ACE.LOG      3694    06/27/93 07:29 ║
 ...
 ║  ACTL.ASM     101998  06/25/93 14:22 ║
 ║  Utility  New_Dir  Change_Drive      ║
 ╚═ Tag  Delete  Quit  Help ┤<>v^├══════╝


Tagged files
------------
  Tagged files are stored in the file "UPLDS.LST" when tagged from inside the
  <FileLister_> MACRO.  When tagged from any of AceComm's internal protocol
  sending units, tagged filenames are stored into a temporary file.  The
  temporary file is deleted after each use.  UPLDS.LST files are not deleted,
  but instead stored ready.

  AceComm will look for UPLDS.LST when any internal batch capable protocols are
  selected.  If found, AceComm will ask the user is sending the contents of
  UPLDS.LST is desired, if (Y)es, AceComm will attempt to send all filenames
  listed in the UPLDS.LST file, if (n)o, AceComm will present the the File
  Input' menu.

 ╔═D:\ACE═══════════════════════════════╗╔═UPLDS.LST════════════
 ║  1_114.FON    26368   06/27/93 07:25 ║║D:\ACE\1_114.FON
 ║ ACE.ASM      8269    06/26/93 18:00 ║║
 ║  ACE.CTL      13589   06/25/93 08:04 ║║
 ║  ACE.EXE      196102  06/27/93 07:24 ║║
 ║  ACE.FON      1600    06/27/93 04:13 ║║
 ║  ACE.HLP      44572   06/27/93 07:09 ║║
 ║  ACE_MAIL.CFG 430     06/22/93 14:23 ║║
 ...
 ║  ACTL         591     06/22/93 14:08 ║║
 ║  ACTL.ASM     101998  06/25/93 14:22 ║║
 ║  Utility  New_Dir  Change_Drive      ║╚══════════════════════
 ╚═│Tag│ Delete  Quit  Help ┤<>v^├══════╝


Delete
------
  Delete option presents a full path spec for the high lighted filename,
  prompting confirmation before deletion.
 ╔═D:\ACE═══════════════════════════════╗
 ║  1_114.FON    26368   06/27/93 07:25 ║
 ║╔═══════════════════╗ 06/27/93 07:31 ║
 ║ ║ D:\ACE\A.SNA      ║ 06/26/93 18:00 ║
 ║ ║ Delete this file? ║ 06/27/93 07:31 ║
 ║ ║(Y)es/(n)o?:      ║ 06/25/93 08:04 ║
 ║ ╚═══════════════════╝ 06/27/93 07:24 ║
 ║  ACE.FON      1600    06/27/93 04:13 ║
 ║  ACE.HLP      44572   06/27/93 07:09 ║
 ║  ACE_DEF.KBD  11120   06/27/93 07:29 ║
 ...
 ║  ACE_MAIL.CFG 430     06/22/93 14:23 ║
 ║  Utility  New_Dir  Change_Drive      ║
 ╚═ Tag  Delete  Quit  Help ┤<>v^├══════╝

Support for a pointer device has been implemented into AceComm using the
Microsoft Mouse Driver functions.  Your Microsoft compatible mouse should work
with AceComm.

Mouse in Terminal Area

o Pressing the left mouse button with the cursor over blank space sends <CR>.

o Pressing the left mouse button with the cursor over a character sends the
  character.

o Double clicking brings up the TopBar menu.

Mouse with Menus

   To move the vertical highlight bar in the menus, press the left mouse button
   and drag it along, the cursor will follow.  Selections can then be made from
   the lateral selector bar by highlighting the first character and pressing
   the left mouse button.




o Macros are directives bounded inside of angle brackets < >

o Macros must have a SPACE character in front of the '<' left bracket when
    stacking.

 <ChgDir>[DIR_MAIL] <RunProg>OFFLINE <ChgDir>[DIR_START]
                   |                 |
                   |_________________|
                   |
                   Leading space

o Macros may be any combination of CaSe

 <RunProg> jmodem
 <runprog> jmodem


o The Macro Processor supports "Macro Stacking".  Macro Stacking means multiple
  Macros per line

 <SendStr>u z ACE0601.ARJ^M <SendZmo>files\ace0601.arj

 <SendStr>u z ACE0601.ARJ^M <RunProg>DSZ sz -m files\ace0601.arj

 <SetDTR> ON <SendStr>ATDT846-2940^M <WaitStr>CONNECT <SendStr>^[^[


o MACRO DATA PARAMETERS are bounded inside of square brackets [ ]

o MACRO DATA PARAMETERS need not have a <SP> character in front of them

o MACRO DATA PARAMETERS must be upper CASE

 <SendStr>[USER_NAME]^MY^M[FON_PWD]
          |          |    |
          |          |    Data Param (Fon.Record password field)
          |          |
          |          ^M translates into a <CR> (carriage return)
          |
          Data Param (IEMSI user name field)

 <SendStr>[USER_NAME]^M~[PASSWORD]^M
 |        |          | |  |
 |        |          | |  IEMSI password field
 |        |          | |
 |        |          | One second delay (~ = second delay)
 MACRO    |          |
          |          Control character representation for <CR>
          |
          MACRO DATA PARAMETER (IEMSI data)


o MACRO FUNCTION PARAMETERS are prefixed with a % character

 <SendZmo> %PF
  |        |
  |        MACRO FUNCTION PARAMETER (prompt for filename)
  |
  Internal Zmodem sending unit

 <RunProg>dsz port %P speed %B sz %PF %WK <SendStr>^M
                      |        |     |   |
                      |        |     |   |
                      |        |     |   MACRO FUNCTION PARAM
                      |        |     |   (wait for key press)
                      |        |     |
                      |        |     MACRO FUNCTION PARAM
                      |        |     (prompt for filename)
                      |        |
                      |        MACRO FUNCTION PARAM
                      |        (insert ascii baud)
                      |
                      MACRO FUNCTION PARAM
                      (insert ascii port)



Please submit all macro suggestions to:
a)  MSG to Michael Phelps on the AceComm Support BBS
b)  MSG to Michael Phelps on Compuserve UID 75120,3306


LUI MACROS require local user input, and so are not suited to un-attended
scripts.  LUI MACROS contain a '_' underscore as the last character inside the
brackets.

<AutoAMenu_>

   Bring up a quick "Point Mail" / "Auto Answer" service menu. This for those
   using the scheduler and automated host modes.


<AutoScrGen_>

   Toggle AutoScrGen(tm) mode

   Toggle AutoScript Generation mode On/Off.  When "On" an extended status line
   will appear at the bottom of the TERMINAL screen.  At the far left of the
   extended status line will be the phrase "AutoScriptGen"


<ScrollBack_>

   Menu Area
   Enter Back Buffer Screen Area

   The "Scroll Back Buffer" contains the last n lines of display that scrolled
   off the TERMINAL screen.  <ScrollBack_> has a status line of it's own.  The
   status line contains such information as current line position into the
   buffer, total lines buffered, and some of the navigational keys are
   displayed.


<CaptureFile_>

   Toggle Capture File
   Prompts for filename

   Capture will also prompt for append or overwrite.  Capture does absolutely
   NO filtering of any kind.  All data is recorded to file "as it comes in the
   port".  The AceComm package comes with separate utilities which can strip
   video control codes from files.

   See also <OpenCapture> filename
            <CloseCapture>


<DOSShell_>

   Enter Shell to Command Processor/ Operating System

   In most cases "Drop to DOS", if your DOS compatible operating system places
   it's name in the environment where AceComm can find it.  "Shell" is not hard
   wired to COMMAND.COM but the COMMAND PROCESSOR as found in the environmental
   data area.

   Notes: When SWAP is "ON", the serial port is effectively disabled during the
          shell.  When SWAP is "OFF" the serial port remains active and any
          incoming data is handled properly, unless the receive buffer wraps
          around.


<FileReq_>
   Menu driven EMSI file request function.


<PhoneList_>

   Menu Area
   Enter .FON List / Dialer

   Dial/.FON directory area.  While AceComm allows manual dialing from inside
   the TERMINAL area, it most convenient to dial from a record contained in one
   of the .FON files available for use from the DIAL area.


<FileList_>

   Menu Area
   Enter File Lister

   Files lister inside AceComm provides a basic directory list function capable
   of changing directories and drives.  File-marking, deletion, selection for
   appropriate file-utility, etc.  LISTFILES may be created.  UPLDS.LST is a
   file created by the Tag feature inside the File Lister Area.  files tagged
   will be listed inside UPLDS.LST as CR LF terminated strings.  When selecting
   any of AceComm's internal batch capable sending protocols, AceComm will
   check for the existent of the file UPLDS.LST and allow sending from the
   LISTFILE if desired.


<MdmHangUp_>

   Prompts Yes/no before,
   Sends PRM-data MDM_HANGUP string to modem.  Waits 1/2 second, then drops DTR
   for 1 second.

See also    <MdmHangUp> (no Yes/no prompt, good in scripts)


<PrmData_>

   Menu Area
   Enter PRM-data Menu Area (Configuration Area)

   Notes: When AutoSave is "ON", all data changed is automatically saved when
          exiting the PRM-data area.


<RProtocols_>

   Menu Area
   Enter Receiver Protocols Area menu


<RunScript_>

   List .SCR directory, Allow selection, Run selected .SCR file

   Lists the PRM-data .SCR directory Allows selection of a .SCR file for
   immediate execution.

   Notes: AceComm allows .SCR file as an argument when started which
          immediately executes the script.


<ScrnDump_>

   Menu Area
   Take Screen Snapshot

   Create a "SnapShot" of the current screen minus any status lines active.
   Prompts for a filename.  Filenames always will have the .SNA extension.
   AceComm can detect and will strip away filename extensions provided by the
   user when they do not match that of the function.  This command is available
   from most ALT POP UP REFERENCE areas.


<ScrnTag_>

   Menu Area
   Enter Screen Tagger Screen Area

   Tagger will allow tagging to the first SPACE_CHAR or press RIGHT-ARROW
   Tagger tags the entire line of text.  Tagger has it's own status line, and a
   block cursor will appear inside of the Tagger mode.  Tagged items will be
   assigned to the next available SHIFT-Fn key.

   Tagger pops up the SHIFT-Fn key window and displays each tagged item, as
   they are tagged.  Tagger is most handy for grabbing filenames for download
   off a BBS screen.  SHIFT-Fn key fires the tagged item back when ready.  This
   command is available from most ALT POP UP REFERENCE areas.


<SProtocols_>

   Menu Area
   Enter Sender Protocols Area


<KeyRef_>

   Bring up Pop up Reference The key press assigned this macro is always
   displayed on the right side of the status line.


<TopBar>

   Activate the menu bar at top of screen

   The key press assigned this macro is always displayed on the right side of
   the status line.
   "Top Bar" menu can also be brought up inside the terminal area by double
   clicking the left mouse button.

The following macros can be used to call individual menus otherwise choices
from the TopBar single line menu


<FileMenu>

   The TopBar File menu


<HelpMenu>

   The TopBar Help menu

   The key press assigned this macro is always displayed on the right side of
   the status line.


<Users>

   The TopBar Users menu

   This is a menu that lists and allows menu selection for the User menus.
   (User1 - User5)


<PhoneMenu>

   Calls the <FonListDialer_> macro


<SetupMenu>

   Calls the <PrmDataMenus_> macro


<XfrMenu>

   The TopBar Transfer menu

<User>n

The following individual User menus can be brought up by themselves.
Otherwise they are selectable from inside the <Users> menu.
The macro takes a parameter 1 - 5

<User>1

   This macro brings up User menu # 1.
...

<User>5

   This macro brings up User menu # 5.


  ┌─────────────────────────────────────────────────────────────┐
  │ Many macros are3 way toggles. Where no parameter toggles.   │
  │                                                             │
  │       <AutoAnswer>ON     ; Enable                           │
  │       <AutoAnswer>OFF    ; Disable                          │
  │       <AutoAnswer>       ; Toggle                           │
  └─────────────────────────────────────────────────────────────┘


--------------------
I/O Function Toggles
--------------------

<AutoAnswer>

   <AutoAnswer>ON     ; Enable
   <AutoAnswer>OFF    ; Disable
   <AutoAnswer>       ; Toggle

   PRM-data MDM_HOST_INIT is sent to the modem when hostmode flag is toggle
   "ON".  PRM-data MDM_INIT is sent to the modem when hostmode flag is toggled
   "OFF".  AceComm begins responding to the RI bit SET, and will send the
   MDM_ANSWER string to the modem when RI BIT becomes asserted.  Upon
   Answer/Connect, AceComm attempts to match the modem response to strings
   defined in the Auto Answer Setup menu.  The appropriate macro stack will
   then be run.  AceComm stores the actual connect speed for use with the %C
   macro parameter.  %B represents the port rate, %C represents the connect
   speed as reported by the modem.

   If you are using <AutoAnswer> alone, without any host script or host
   software, then be sure and also use <HostEcho>ON.  If you want to act as a
   host with characters being bounced back to the caller.

   Notes: Auto Answer is also terminated whenever the user dials out from the
          FON LIST MENU AREA.  If automated auto answer is being used by way of
          the scheduler, then auto answer mode will be re-entered as soon as
          AceComm detects carrier drop.

   See also   Auto Answer Setup menu


<DoorWayMode>

   <DoorWayMode>ON     ; Enable
   <DoorWayMode>OFF    ; Disable
   <DoorWayMode>       ; Toggle

   Toggle doorway mode.  Traps the key press on entry, whatever key press you
   assign <DoorWayMode> to, is the only way back out.  Doorway sends all key
   presses to the modem in their RAW 'un-cooked' form.  Non extended key
   presses are send LOW BYTE ONLY.  Extended key presses are sent LOW BYTE,
   HIGH BYTE.

   Notes: Pressing CONTROL BREAK will always end AceComm.  CONTROL BREAK is a
         back door to the <EndAceComm> macro.  When you exit the program by
         pressing CONTROL BREAK, all data is saved as usual, and program
         cleanup is as it would be using the <EndAceComm> macro.


<HostEcho>

   <HostEcho>ON     ; Enable
   <HostEcho>OFF    ; Disable
   <HostEcho>       ; Toggle

   Toggle Host echo mode.  This macro emulates HostMode's ECHO capability.  It
   does not answer the phone. Use <AutoAnswer>On to have AceComm answer.

   Host echo means that characters typed locally will be displayed both local
   and sent to the modem.

   Host echo will also translate <CR> into <CR><LF> pairs and <BS> into
   <BS><SP><BS>.


<LocalEcho>

   <LocalEcho>ON     ; Enable
   <LocalEcho>OFF    ; Disable
   <LocalEcho>       ; Toggle

   Toggle local character echo.  Local key-presses will be echoed to the
   screen.  (same effect as sending "ATE1^M" to the modem)
   If you use <LocalEcho> be sure your modem is set up with echo off.
   To turn the modem echo off   ATE0


-------------------------------------
I/O Flags Toggles internal to AceComm
-------------------------------------

<BitStrip>

   <BitStrip> on
   <BitStrip> off
   <BitStrip>

   AceComm going to strip high bit from ascii characters (above 127d)


<CTS>

   <CTS> on
   <CTS> off
   <CTS>

   AceComm uses CTS/RTS hardware handshaking.


<XON>

   <XON> on
   <XON> off
   <XON>

   AceComm uses XON/XOFF software handshaking

----------
I/O Modem
----------


<GetDCD>

   Returns 0 or 1 current carrier detect signal
:DIAL
   ...
   <GetDCD>
   <if>1 <goto>CONNECT
         <goto>DIAL
   ...
:CONNECT


<MdmHangUp>

   Sends PRM-data MDM_HANGUP string to modem.  Waits 1/2 second, then drops DTR
   for 1 second.


<MdmStill>

   <MdmStill>n

   Wait for n seconds where nothing arrives from the modem.

   <SendStr>d^M ACE185.ZIP^M
   <RecvZmo>
   <MdmStill>5 <SendStr>G^M Y^M <Delay>2 <MdmHangUp>


<SetDTR>

   <SetDTR> on
   <SetDTR> off

   Assert or Reset UART Bit for data terminal ready


<SetLCtrl>STRING

   <SetLCtrl>8N1
   <SetLCtrl>7E1
   <SetLCtrl>7N1


<SetBaud>STRING

   <SetBaud>300
   <SetBaud>1200
   <SetBaud>2400
   <SetBaud>4800
   <SetBaud>9600
   <SetBaud>19200
   <SetBaud>38400
   <SetBaud>57600
   <SetBaud>115200


-----------------------
I/O Mostly Scripts Uses
-----------------------

The sample MINIHOST.SCR included with the AceComm package demonstrates most of
the macros in this manual. Remember that macros ending in _> require local
keyboard input, so are not suited to un-attended scripts.
          Example:
                  <MdmHangUp_>  will prompt the user (Yes/no)
             where
                  <MdmHangUp>  hangs up with no (Yes/no) prompt




<CheckMdm>STRING

   This macro checks to see if STRING has come in from the modem.
   The macro does not wait, but sets the result for a following <if>
   to 1 or 0.
   Result to <if> is 1 or 0

--- Example ---
;
; Clear screen,  Send ansi video request,  Display banner
;
   <Timer0>3                        ; Init Timer0 and set 3 second timeout
   <RawCapture>On                   ; Allow all caller's input in wait buffer
                                    ; ESC[6n  is video request (detect ansi)
   <SendStr>^L^[[6n^MMini Host Script for AceComm v1.85^M
;
; Loop here for 3 second maximum waiting for answer to Ansi detect sequence
;
:@@DetectAnsi
   <CheckMdm>[ <if>1 <goto>@@AnsiDetected     ; Remote will answer with
   <Timer0> <if>1 <goto>@@DetectAnsi           ; ESC[n;nR  if ANSI capable
   <RawCapture>Off
   <HostEcho>ON                                ; HostEcho translates CR
                                               ; into CR,LF pair
   <DispStr>^MAnsi video request un-answered^M ; Ansi video request
   <goto>@@Welcome
:@@AnsiDetected
   <RawCapture>Off
   <HostEcho>ON                     ; HostEcho translated CR into CR,LF pair
   <SendStr> ^MAnsi video detected!^M

--- End Example ---


<DirList> PATH\*.*

   List a directory, can be used from host mode.

   <DirList>[DIR_DNLDS]\*.*
   <DirList>C:\files\*.ZIP

<DispStr>TEXT


   <DispStr>^M[BWhi][Blu]Hello to you![AttrOff]^M^J


<DispText> LABEL_NAME

   Display text defined in a data area of a script file LABEL_NAME is
   descriptive text following {-TEXT_START-} Text is displayed at current
   cursor position Text display is local

--- Example ---

:@@Top
   <ClrWin>
   <DispText>Intro
   <DispText>Ask_Continue
:GetKey
   <GetKey>60
      <if>Y <goto>Dial
      <if>N <goto>End
      <goto>GetKey
:Dial
   <INITFONREC>ACECOMM Support BBS      ; Initialize a FON RECORD
   <FON_NUM>1-602-846-2940            ;
   <FON_BAUD>19200                    ;
   <FON_TERM>Av/An                    ;
   <FON_REDIAL>                       ; Go into re dial mode
   <DispText>Connect
   <WAITSTR> your name:
   <GetDCD>                           ; <WaitStr> may have timed
   <if>1 <goto>Connect                ; out
   <goto>@@Top
:Connect
   <SENDSTR>Michael Phelps^M
   <SENDSTR>Y^M
   <SENDSTR>password^M
   <WAITSTR>Select:
   <SENDSTR>ff
:End
   <ENDS>

{-DATA_AREA-}
{-TEXT_START-}Intro
-- Generic Log On Script --
{-TEXT_END-}
{-TEXT_START-}Ask_Continue
Continue (Y/n) {-TEXT_END-}

{-TEXT_START-}Connect
-- Connect --
{-TEXT_END-}

--- End Example ---


<EndS>

   Marks the exit point for the script processor.


<FindUser>

   Searches a file names USERLIST.LST for user names.
   Result to <if> is 1 or 0

   Sample USERLIST.LST file contents:

Michael Phelps,password,9
Guest Pass,guest,1

The user name must be First Last,password,level
Level is not currently supported, but must be there. The commas are important.


--- Example ---
   <DispStr> ^MEnter your first and last name:
   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
   <DispStr> ^MEnter your first and last name:
   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
   <DispStr> ^MEnter your first and last name:

   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
:@@1
   <DispStr>^L^MYour name has not been registered in the user file, you may
   <DispStr>^Moptionaly leave a short not for the SysOp, pleas include your
   <DispStr>^Mfirst and last name along with a password.
   <DispStr>^M^MWould you like to leave a note? (Y)es/(N)o
   <GetKey>
   <if>Y <goto>@@LogOffComment
   <if>N <goto>@@OFF
   <Goto>@@1
--- End Example ---


<GetKey>n

   <GetKey>60
   The macro excepts a parameter. Seconds to wait for a key press. The
   parameter range if 1 second - (60 * 7) seconds

   :@@Top
         <DispText>Main_Menu
   :@@GetKey
        <GetKey>10
                  <If>L <goto>@@List
                  <If>M <Goto>@@Main
                  <If>^M <Goto>@@Top
        <GetDCD> <If>0 <goto>@@UseDroppedCarrier
        <Goto>@@GetKey

   When a key press is checked with the <if> macro, it is first made upper
   case. Control characters can be trapped by representing it as ^[character].

   To see if the user pressed the ENTER key   <if>^M
                                    ESC key   <if>^[

   <if> will also check for extended key presses that might be made locally.
   This needs <LocalKeys>ON.
   <If>ALT+J <Goto>@@JumpToDOS
   <If>CTRL+J <Goto>@@JumpToDOS
   <If>F11 <Goto>@@JumpToDOS
   <If>SF11 <Goto>@@JumpToDOS
   <If>CF11 <Goto>@@JumpToDOS
   <If>AF11 <Goto>@@JumpToDOS


<GetMsg>

   This macro will create a message.  It needs host echo on.  The macro inputs
   for From:, To:, Subject: fields.  When called after <FindUser> the From:
   field is initialized with the user's name.  The macro write a message header
   to the beginning of the message file.  The message text is taken from the
   screen after the user saves the message with CONTROL Z.  Message filenames
   are created as 1.MSG, 2.MSG, 3.MSG etc.  The macro is designed for a small
   number of messages.  It will create the first filename that does not exist.

   See <ReadMsg>  and  <YourMsg> macros.


<GetStr>n

   <GetStr>36
   Parameter n is the maximum characters to allow entered. Range is 1 - 128.
   The macro is used for the <FindUser>, <UserPwd>, and %FN.
   %FN maximum length is 80 characters.
   %FN always represents the string entered with <GetStr>.

       <DispStr> ^M^JEnter your first and last name:
       <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
       <DispStr>^M^J^G%FN not found in user list!
       <Goto>@@DumpCaller
   :@@GetPwd


<GoTo>

   Can be used alone or after an <If> macro.
   Parameter to <GoTo> is a label. Labels begin with a :.
   Labels need to be unique character strings.

   <GoTo>@@Done

   <GetDCD> <if>1 <Goto>@@Carrier
                  <Goto>@@OffLine

   <CheckMdm>password: <if>1 <Goto>@@SendPwd


<If>
   Can only be used after macros that produce a result.


      <GetDCD>   <if>1 <Goto>@@DCD
      <CheckMdm> <If>0 <Goto>@@WaitStr
      <Timer0>   <If>1 <Goto>@@WaitStr
      <Timer1>   <If>0 <Goto>@@Timeout
      <FindUser> <If>0 <Goto>@@DumpCaller
      <UserPwd>  <If>0 <Goto>@@LetCallerLeaveMsg
      <GetKey>   <If>^M <Goto>@@UserEnter

<LocalKeys>

<LocalKeys> on
<LocalKeys> off
<LocalKeys>

   3 way macro
   Enable/disable local LUI key press during script (host mode)


<NCWaitStr> STRING

   Non CaSe sensitive version of <WaitStr>

   Waits for a string (sequence of characters) to come in the
   from the modem.  Can Timeout. If <WaitStr> times out, it falls through.

   Timeout seconds is set with <WaitTime>n

          <WaitStr> name:
                   |
                   leading <SP> character is part of search


<ReadMsg>

   This macro displays the messages found. A key press is prompted between
   each message.


<SendStr> STRING

   Sends a string to the modem.

       <SendStr>^M

       Send a single CR_CHAR


       <SendStr> Michael Phelps^M

       Notes: the leading space character is part of STRING


      <SendStr>[USER_NAME]^M~Y^M~[FON_PWD]

       Send IEMSI data user name field, a <CR> char, 1 second pause, Y, <CR>
       char, 1 second pause, current Fon.Record.Password.


      <SendStr>[USER_NAME]^M^M[PASSWORD]^M

       Send IEMSI data user name field, 2 <CR> chars, IEMSI data password
       field.


<Timer0>
<Timer1>

   Two separate timers
   A parameter to the <Timer0> macro sets the timeout time in seconds
   Result to <if> is 1 or 0

   <Timer0>30  Sets a timeout of 30 seconds for Timer 0

   <Timer0>    Sets the result for an <if> to 1 or 0.   0 if the timer has
               expired,
   <Timer1> works the same way.


<UserPwd>

   This macro can only be called immediately after the <FindUser> macro.
   This macro will verify the password. Success or failure is determined with
   the immediate call to <if> macro. (see below)
   Result to <if> is 1 or 0

--- Example ---
   <DispStr> ^MEnter password:
   <GetStr>26 <UserPwd> <if>1 <goto>@@MainMenu
   <DispStr> ^MEnter password:
   <GetStr>26 <UserPwd> <if>1 <goto>@@MainMenu
   <DispStr> ^MEnter password:
   <GetStr>26 <UserPwd> <if>0 <goto>@@OFF
                              <goto>@@MainMenu
--- End Example ---


<Var0>
<Var1>

   Variables that can store a result.

--- Example ---
;
; Clear screen,  Send ansi video request,  Display banner
;
   <Var0>0                          ; See if we can set this to 1 with
                                    ; our ansi video detection scheme.
   <Timer0>3                        ; Init Timer0 and set 3 second timeout
   <RawCapture>On                   ; Allow all caller's input in wait buffer
                                    ; ESC[6n  is video request (detect ansi)
   <SendStr>^L^[[6n^MMini Host Script for AceComm v1.85^M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Loop here for 3 second maximum waiting for answer to Ansi detect sequence
;
:@@DetectAnsi
   <CheckMdm>[ <if>1 <goto>@@AnsiDetected     ; Remote will answer with
   <Timer0> <if>1 <goto>@@DetectAnsi           ; ESC[n;nR  if ANSI capable
   <RawCapture>Off
   <HostEcho>ON                                ; HostEcho translates CR
                                               ; into CR,LF pair
   <DispStr>^M^JAnsi video request un-answered ; Ansi video request
   <goto>@@Welcome
:@@AnsiDetected
   <Var0>1
   <RawCapture>Off
   <HostEcho>ON                     ; HostEcho translated CR into CR,LF pair
   <SendStr> ^M^JAnsi video detected!

:@@Welcome
   ;
   ; %C is the connect speed
   ;
   <Var0> <if>1 <DispStr>^M^J[Whi]Connected at [Blink][Bold][Red]%C[AttrOff]
   <Var0> <if>0 <DispStr>^M^JConnected at  %C

--- End Example ---


<WaitStr> STRING

   Waits for a CASE sensitive string (sequence of characters) to come in the
   from the modem.  Can Timeout. If <WaitStr> times out, it falls through.

   Timeout seconds is set with <WaitTime>n

          <WaitStr> name:
                   |
                   leading <SP> character is part of search


<WaitTime> n

   Where n is in seconds Set the timeout value for <WaitStr> (default is 40
   seconds)

      <Timer0>10
      <WaitTime>15
      <WaitStr>name?
      <Timer0> <if>0 <goto>@@Timeout
      <SendStr>[USER_NAME]^M
   :@@TimeOut


<YourMsg>

   This macro is the same as <ReadMsg>, except that the To: field in the
   message header must match the caller's name.
   You can use this macro to display personal messages to the callers.
   Messages must be created with <GetMsg>.


------------------------
Internal Protocols Flags
------------------------

<AutoD> on/off

   Enable/disable auto engage sequence scanning for protocols

   Does not affect auto log on


<Resume> on/off

   Enable/disable file resume (internal zmodem receive)


<Rename> on/off

   Enable/disable file rename (internal zmodem receive)


-------------
General Flags
-------------

<SwapSpawn> on/off

   3 way toggle
   Enable/disable swap to EMS/XMS/DISK for <RunProg> macro


<SwapShell> on/off

   3 way toggle
   Enable/disable swap to EMS/XMS/DISK for <CommandShell_> macro


<DTRExit> on/off

   3 way toggle
   DTR state for <EndAceComm> macro


<Scheds> on/off

   <Scheds>ON     ; Enable
   <Scheds>OFF    ; Disable
   <Scheds>       ; Toggle

   3 way toggle
   This macro will simply turn the schedules on or off.



<RawCapture>on/off

   <RawCapture>on
   <RawCapture>off
   <RawCapture>

   3 way toggle
   <rawCapture>ON <OpenCapture>xmas.ans

   Captured data will be stored with or without video control characters.  The
   current video emulation must mach that of the host.

   AN/AV covers both Ansi and Avatar video at the same time ans is the AceComm
   default video type.


<ChgDir> FILENAME

   Make FILENAME current directory
   This macro can change drives

   <ChgDir>C:\WORK\TXT <ToPrn>melissa.01 <ChgDir>[DIR_START]

   <ChgDir>[FIR_DNLDS] <RunProg>DSZ port %P speed %B rz -mr <ChgDir>[DIR_START]

   Notes: [DIR_START] is the directory Acecomm is started in.
          [DIR_DNLDS] is the directory pointed to inside PRM-data
          "Directories" menu for "Downloads".


<CloseCapture>

   Close the current open capture file, or just returns if none is open.

   Capture files are stamped with date/time when closed.

   Capture files are automatically closed on detection of a loss in carrier.

   Capture files are automatically closed when the <OpenCapture> macro is
   called, so that any previous open capture file is sure to be closed before
   opening the new one.


<FileDel> FILENAME

   If the file exists, it will be deleted without prompt.  Use full path name
   if not in current directory.


<OpenCapture> FILENAME

   Calling this function opens a capture file in the directory path defined
   inside PRM-data Area "Directories" menu, .CAP files.

   Existing capture files of same FILENAME are appended to.  DOS eof character
   may end up just ahead of the time stamp.

   This function will first close any previously opened capture file, properly
   saving it to disk.

   Capture files are stamped with date/time when opened.

   Capture files can record either in "Raw" or "Text" mode. "Raw" mode being
   where no video control characters are filtered. "Text" being everything
   that the current video emulation does not pick out.

   See also <RawCapture> macro


<RunScript> FILENAME

   Open and run FILENAME

   Notes: Just FILENAME no PATH.  PATH found in PRM-data for SCR directory is
          used.
          Note the difference between <RunScript> and <RunScript_>, where
          the later does filename prompting.

<RunProg> FILENAME

   Spawn an executable file.

   Can search the DOS PATH.

   Can determine files's extension (.COM, .EXE).

   All system ISRS are restored before the spawn takes place.  The serial port
   is un-hooked.  The state of DCD, and LINE CONTROL are left in tact.

   After the spawn the system ISRs AceComm uses are taken back, the serial port
   is re-assumed.

   SWAP FLAG "ON" and XMS,EMS, or DISK swapping takes place.  SWAP FLAG "OFF"
   and AceComm is left in memory, with exception to first restoring the serial
   port and interrupts.


<SetFonFile> FILENAME

   Tacks FILENAME onto the PATH defined in PRM DATA for .FON files.  AceComm
   keeps track of the current(last accessed) .FON file.  FILENAME becomes the
   current .FON file.  <SetFonFile> 1_114.fon <DialRecord> 1


<ToPrn> FILENAME

   Send FILENAME to the printer.

   Notes: This macro opens the filename PRN using DOS file handle function, and
          writes the file.  Any character translation DOS may do will depend
          upon the IOCTL functions of DOS.  (eof etc.)



Internal receiver protocols will receive to the sub directory for Downloads as
setup inside the PRM-data "Directories" menu.


<SendAscii> FILENAME

   Outputs from a file to the modem.  Sends the complete file.  Does *NO*
   CONTROL CHARACTER TRANSLATION.  Data sent to the modem is paced for buffer
   FULL, and all handshaking is valid.

   ESC-key press aborts the function.


<SendZmo@> @FILENAME

   Where @FILENAME is a LISTFILE
   The @ denotes a LISTFILE
   Filenames contained in the listfile should be full drive path filenames,
   if not all contained in the current working directory.

   Call internal zmodem sending unit with 1k data frame size.
   ESC-key press aborts the function.


<SendZmo> FILENAME

   Call internal zmodem sending unit with 1k data frame size.
   ESC-key press aborts the function.


<SendYmo> FILENAME

   Call internal ymodem sending unit with 128 byte data frame size.
   ESC-key press aborts the function.


<SendYmo1k> FILENAME

   Call internal ymodem sending unit with 1k data frame size.
   ESC-key press aborts the function.


<SendYmoG> FILENAME

   Call internal ymodemG sending unit with 1k data frame size.
   ESC-key press aborts the function.


<SendXmo> FILENAME

   Call internal xmodem sending unit with 128 byte data frame size.
   ESC-key press aborts the function.


<SendXmo1k> FILENAME

   Call internal xmodem sending unit with 1k data frame size.
   ESC-key press aborts the function.


<RecvAscii> FILENAME

   Ascii receiver will close the file when End Of File "eof" character is
   seen.  Eof character is set from inside "Protocol Options" menu.  The
   default eof character is the DOS standard 26d.
   ESC-key press aborts the function.


<RecvZmo>

   Call internal zmodem recv unit.  AceComm's internal zmodem receiver is
   capable of up to 8k data frame size.  The receive unit will continue in
   batch mode until the sender stops sending files, or the user terminates the
   transfer.  Files are placed into the directory pointed to in the PRM-data
   area for Downloads.
   ESC-key press aborts the function.


<RecvYmo>

   Call internal ymodem.  The receive unit will continue in batch mode until
   the sender stops sending files, or the user terminates the transfer.  Files
   are placed into the directory pointed to in the PRM-data area for Downloads.
   ESC-key press aborts the function.


<RecvYmo1K>

   Call internal ymodem1K.  The receive unit will continue in batch mode until
   the sender stops sending files, or the user terminates the transfer.  Files
   are placed into the directory pointed to in the PRM-data area for Downloads.
   ESC-key press aborts the function.


<RecvYmoG>

   Call internal ymodemG.  The receive unit will continue in batch mode until
   the sender stops sending files, or the user terminates the transfer.  Files
   are placed into the directory pointed to in the PRM-data area for Downloads.
   ESC-key press aborts the function.


<RecvXmo> FILENAME

   Call internal xmodem.  Files are placed into the directory pointed to in the
   PRM-data area for Downloads.
   ESC-key press aborts the function.


<RecvXmo1K> FILENAME

   Call internal xmodem1k.  Files are placed into the directory pointed to in
   the PRM-data area for Downloads.
   ESC-key press aborts the function.


<SendEMSI_CLI>

   Send an EMSI_CLI HDR sequence to modem

   BBS mailer front ends that use EMSI handshake protocol will, if EMSI is
   implemented properly, interpret an "EMSI_CLI" HDR sequence, as "this is a
   human caller" and drop to the BBS without any delay.  Note: At this writing
   Front Door, and Binkley recognize EMSI_CLI HDR.  DBridge does not.  See
   default AutoD trigger assignments (ACE.CTL)


<SendEMSI_ICI>

   IEMSI support macro
   Send an EMSI_ICI data packet to modem

   EMSI_ICI is a response made by the caller (CLIENT) to a BBS system (HOST)
   which supports Interactive EMSI handshake protocol.  IEMSI data is contained
   inside the PRM-data area.  This data can be used for automating log on when
   call a BBS that supports IEMSI.  See default AutoD trigger assignments
   (ACE.CTL)




Notes: Xmodem/Ymodem Receive units are capable of adopting to frame size.
       128 / 1024 data frames are determined by the sender and can be sent in
       any combination.

       The Internal Zmodem in AceComm is capable of up to 8k data frames.  For
       compatibility, AceComm only uses larger than 1k data frames with it's
       sending unit in mailer modes.  AceComm's zmodem receive unit can handle
       up to 8k data frames at any time.
       The internal zmodem can make filename management decisions based on the
       status of option flags for "resume" and "rename".



<DialNum> PHONE_NUMBER

   Builds a dial string.  Uses PRM-data MDM_DIAL_PREFIX and PHONE_NUMBER Sends
   the dial string to the modem.  One time.  No re dials as this will typically
   take place from terminal area.


<DialRecord> n

   Retrieves the n record found in current .FON file

   Re dials number until CONNECT or USER ABORT

       <SetFonFile> 1_114.FON <DialRecord> 1



-----------------------------------------
For creating a Fon.Record inside a script
-----------------------------------------

<InitFonRec> RECORD NAME

   This MACRO must be called first.  The MACRO initializes a FON RECORD with
   AceComm defaults.  RECORD NAME is copied into the system name for this
   record.

      <InitFonRec> Compuserve


<Fon_Num> PHONE_NUMBER

   Set the phone number field.  Any dial statements in ACE.CFG will be applied
   to this number when AceComm builds the dial string.

      <Fon_Num>468-0285


<Fon_Baud>BAUD

   If using a locked port, AceComm will ignore this value when getting ready to
   dial.

      <Fon_Baud>19200


<Fon_LineCtrl> DATA_PARITY_STOPBIT

   Valid parameters are as follows
         8n1
         7e1
         7n1

      <Fon_LineCtrl>8n1


<Fon_Flags> FLAG, FLAG

   Possible Control Flags

   "Script" when set,

   AceComm will attempt to load and run the filename defined next to "AutoLogOn
   Script".  If a script file is not found, AceComm ignores the error and
   continues normal operation.

   Notes: .SCR files are looked for in the directory defined inside PRM-data
           Area "Directories"


   "Macro"  when  set,

   AceComm will enable the defined Auto Log on Sequence Triggers and
   corresponding MACRO stacks.


   "DTag"  when  set,

   AceComm will tag un-successful dial attempts (busy, etc.) to the Que
   Dialer.  An "*" character appears to the left of a Fon.Record's display
   line, when it is either Q tagged or, D tagged.  When this flag is not set,
   the only other way to Q tag a record is by manually selecting the menu
   option "<SPACEBAR>-Que" from the fon list display.


   "Capture" when  set,

   When this flag is selected, a capture file is opened upon
   Dial/Connect.  Any previously open capture file is first
   closed.


   "Raw"  when set,

   Data to capture file is as it comes in from the modem


   "Text"  when set,

   Data to capture file is filtered of video control codes
   as applicable to the current Video type


   "IEMSI"  when  set,

   Allow Interactive EMSI log on

  "AutoL"

  Allow auto log on methods (script/macro)


<Fon_Term> VIDEO_TYPE

      - Valid parameters are as follows

        TTY
        Ansi
        Avatar
        Av/An
        VT102

      <Fon_Term>Av/An


<Fon_CapFile> FILENAME


<Fon_Redial>

   Presents the FON record to the AceComm re dial function.

<Redials>n

   Where n is the number of redials before giving up.  This macro works only
   when dialing from a script using the <FON_ReDial> macro.  <ReDials> does
   not affect normal interactive use, and is not the same as the menu option
   found inside the "Point Mail" "Options" menu.




<Alarm> SECONDS

   Sound alarm for SECONDS


<BbsEndAceComm>

   This macro will Exit AceComm with an error level based on the current baud
   setting.  Baud is taken from the UART, and if the port is locked, will vary
   from the connect speed.

   Error level is decimal of the first 2 ascii decimal digits of the current
   UART baud setting.

   DTR state is left as is.

   Error levels returned are:
                             57 - 57600
                             38 - 38400
                             19 - 19200
                             96 -  9600
                             48 -  4800
                             24 -  2400
                             12 -  1200
                             30 -   300
   Sample use:
:Start
   echo off
   ace
   if error level 96 goto error96
   if error level 57 goto error57
   if error level 48 goto error48
   if error level 38 goto error38
   if error level 24 goto error24
   if error level 19 goto error19
   goto start
:error57
   BBS.EXE 57600
   goto Start
:error38
   BBS.EXE 38400
   goto Start
:error19
   BBS.EXE 19200
   goto Start
:error96
   BBS.EXE 9600
   goto Start
:error48
   BBS.EXE 4800
   goto Start
:error24
   BBS.EXE 2400
   goto Start
:error12
   BBS.EXE 1200
   goto Start
:End


<ClrWin>

   Clear screen. Clears screen above status line


<Delay> SECONDS

   Create program function delay.

   <SendStr>Go IBMCOM^M <OpenCapture>ibmcom <Delay>7 <SendStr>Read New^M
   <Delay> allows I/O, you could trip your <CheckMdm> with this one.


<EndAceComm> ERROR LEVEL

   <EndAceComm> 0
   AceComm session end with error level

   Exit AceComm back to the operating system.  End AceComm session.  A QUICK
   snap, no prompt "Are you sure?".  If your on line, your still on line when
   you come back unless "drop DTR on exit is SET"

   See Drop DTR on EXIT flag inside Terminal Area Options

   Notes: Pressing CONTROL BREAK will always end AceComm.  CONTROL BREAK is a
         back door to the <EndAceComm> macro.  When you exit the program by
         pressing CONTROL BREAK, all data is saved as usual, and program
         cleanup is as it would be using the <EndAceComm> macro.


<PollBoss>1-5

   This macros take BOSS data and builds a FLO file.  The macro then creates a
   Fon.Record with the BOSS info and goes into mailer mode.  If the connect is
   un-successful or aborted, the FLO file still exits in the MAIL OUT
   directory.  Any schedule that allows mail will see the FLO file and cause
   the system to be polled again.
   Long distance calls need the "LD," schedule flag,


<RingBell> SECONDS

   A value of 0 does not ring bell, a value of 1 plays a victory tune, values
   from 2 - 30 ring the internal bell for the number of seconds.  This is the
   same bell sound heard in the Dial/Connect window.


<Wait_To_HHMM> hh:mm

   Wait until hour:minute 24 hour format leading zeros not needed

           <Wait_To_HHMM>4:10    is valid

--- Example ---
    <Wait_To_HHMM>15:45                ; wait till 3:45 pm
    <INITFONREC>A.C.E. Software Support; call Init FON function
    <FON_NUM>1-602-846-2940            ; set phone number
    <FON_BAUD>2400
    <FON_TERM>Av/An                    ; video type for script
    <FON_REDIAL>                       ; call redial function
    <WAITSTR>it a few moments.

    <SENDSTR>^M
    <WAITSTR>s your name:
    <SENDSTR>Michael Phelps^M
    <WAITSTR>ael Phelps [Y,n]?
    <SENDSTR>^M
    <WAITSTR>Password:
    <SENDSTR>melissa_jean^M
    <WAITSTR>Select:
    <SENDSTR>f^M
    <SENDSTR>d^Mz^Mace170.arj^M
    <RecvZmo>
    <WAITSTR>Select:
    <SENDSTR>gyn^M
    <ENDS>
--- End Example ---


o MACRO parameters are UPPER case only
-----------
Fon.Records
-----------

[FON_PWD]

   Replaced with the current Fon.Record "password"


[FON_ALIAS]

   Replaced with the current Fon.Record "alias"


[FON_ID]

   Replaced with the current Fon.Record "ID"


[FON_CAP]

   Replaced with the current Fon.Record CAPTURE "filename"


[FON_SCR]

   Replaced with the current Fon.Record SCRIPT "filename"




--------------
PRM-data IEMSI
--------------

[USER_NAME]

   Replaced with the current PRM-data/IEMSI "User Name"

      <SendStr> [USER_NAME]


[ALIAS]

   Replaced with the current PRM-data/IEMSI "alias"


[LOCATION]

   Replaced with the current PRM-data/IEMSI "location"


[DATA_PNUM]

   Replaced with the current PRM-data/IEMSI "data #"



[VOICE_PNUM]

   Replaced with the current PRM-data/IEMSI "voice #"


[PASSWORD]

   Replaced with the current PRM-data/IEMSI "password"


The following are data from PRM-data DIRECTORY section




--------------------
PRM-data Directories
--------------------

[DIR_START]

   Replaced with the current PRM-data/DIR "start up"
   This is the directory AceComm is started in.


[DIR_FON]

   Replaced with the current PRM-data/DIR ".FON"


[DIR_CAP]

   Replaced with the current PRM-data/DIR ".CAP"


[DIR_SCR]

   Replaced with the current PRM-data/DIR ".SCR"


[DIR_KTS]

   Replaced with the current PRM-data/DIR ".KTS"


[DIR_DNLDS]

   Replaced with the current PRM-data/DIR "dnlds"
   <ChgDir> [DIR_DNLDS] <RunProgram>DSZ rz -mr <ChgDir> [DIR_START]


[DIR_NODELIST]

   Replaced with the current PRM-data/DIR "nodelist"


[DIR_MAILIN]

   Replaced with the current PRM-data/DIR "mail_in"


[DIR_MAILOUT]

   Replaced with the current PRM-data/DIR "mail_out"



--------------
PRM-data Modem
--------------

[MDM_INIT]

   Replaced with the current PRM-data/MDM "init"
   <SendStr>[HANGUP]^M~[MDM_INIT]^M


[DIAL_PREFIX]

   Replaced with the current PRM-data/MDM "dial prefix"


[DIAL_SUFFIX]

   Replaced with the current PRM-data/MDM "dial suffix"


[ANSWER]

   Replaced with the current PRM-data/MDM "answer"


[HANGUP]

   Replaced with the current PRM-data/MDM "hangup"


[OFFHOOK]

   Replaced with the current PRM-data/MDM "off hook"


[ABORT]

   Replaced with the current PRM-data/MDM "abort"


[RESET]

   Replaced with the current PRM-data/MDM "reset"


[ECHO]

   Replaced with the current PRM-data/MDM "echo"


[HOST_INIT]

   Replaced with the current PRM-data/MDM "host init"


[CMD_LINE_TERMINATOR]

   Replaced   with   the   current   PRM-data/MDM  "command  line
   terminator"


------------------------
Ansi Video Control Modes
------------------------

[AttrOff]

   All attributes Off, reset to gray


[Bold]

   Bold color attribute


[Faint]

   Faint color attribute


[Italic]

   Italics text on


[Blink]

   Blinking attribute on


[RBlink]

   Rapid blinking attribute on


[Rev]

   Reverse video attribute on


[Con]

   Concealed attribute

-------------------------
Ansi Video Control Colors
-------------------------

The following foreground colors become intense with [Bold], and normal with
[Faint].

Replaceable macro          Foreground Color
-----------------          ----------------

[Bla]                      Black
[Red]                      Red
[Gre]                      Green
[Yel]                      Yellow
[Blu]                      Blue
[Mag]                      Magenta
[Cya]                      Cyan
[Whi]                      White


Replaceable macro          Background Color
-----------------          ----------------

[BBla]                     Black
[BRed]                     Red
[BGre]                     Green
[BYel]                     Yellow
[BBlu]                     Blue
[BMag]                     Magenta
[BCya]                     Cyan
[BWhi]                     White


-------------------------
Ansi Video Cursor Control
-------------------------


Replaceable macro          Background Color
-----------------          ----------------

[CUp]                      Cursor Up 1
[CDn]                      Cursor Down 1
[CFw]                      Cursor Right 1
[CBw]                      Cursor Left 1
[Cls]                      Clear Screen
[Cle]                      Clear to End Of Line

--------------
Host Mode Data
--------------

[USR_NAM]

   Caller name as found in the USERLIST.LST file.

[CURTIME]

   Replaced with the current time in 12 hour format.

[DCDTIME]

   Replaced with the online time.



o  Replaceable MACRO Functions are UPPER case only

%B
   Insert ascii baud, %B is replaced with current baud setting in ascii
   format.  Current baud setting is UART line speed, if the port is locked,
   this will differ from the modem connect speed.

%C
   Insert ascii connect speed, same as above, but CONNECT speed in stead of
   port rate.

%P
   Insert ascii port, %P is replaced with current port number is ascii format.
   Port number is 1 based (com1 =1, com2 =2)

%FN   (Valid when used from <FileLister_>)

   Use from File Lister Area, %FN is replaced with currently "highlighted"
   filename.

%PF
   Prompt for filename, %PF is replaced with what you type into the prompt box.

%WK

   Wait for Key press, stops MACRO execution and waits for a key press.



AceComm generates script files automatically when running in "AutoScriptGen"
mode.  The macro <AutoScrGen_> puts AceComm into "Script Learn".  AceComm's
default keyboard file, assigns ALT A to toggle <AutoScrGen_> on.


"AutoScriptGen" first prompts for a filename to use for the script file.  The
extension .SCR will automatically be appended.

╔═Input Window══════════════════════════════════════════════════
║═Enter filename, <ENTER> alone when done, ESC-abort════════════
║=> D:\ACE\CSERVE░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
╚═══════════════════════════════════════════════════════════════

Having a filename, AutoScriptGen creates the file and waits for activity.  We
want to call out.  Lets bring up the FON directory and select Compuserve.

╔═ Telephone_directory fon\ACE.FON, 9 Records═══════════════════
║═      System Name              Phone Number     Line Control V
║ 1    AceComm Support BBS      1-602-846-2940     19200,8N1   A
║2    CIS (local phoenix 9600) 468-0285           19200,7E1   A
║ 3    CIS (phones)             1-800-346-3247     2400,7E1    A
║ 4    Comp USA #2              1-214-620-7993     19200,8N1   A
║ 5    Supra Modem BBS          1-503-967-2444     19200,8N1   A
║ 6   Comput Connections (PCB) 1-202-547-2008     19200,8N1   A
║ 7   Comp USE (Dallas TX)     1-214-620-2255     19200,8N1   A
║  Dial  Edit  <SPACEBAR>-Que  Circling_dial_queue  Fon_files  S
╚═ Add_record  Remove_record  UnMark_All  Import  Paint  Quit  H

AutoScripGen will write Fon.Record information to the script file in the form
of macro commands.

The macro to start "Script Learn" is <AutoScrGen>.  AceComm's default setup
uses ALT A to toggle <AutoScrGen> on.  The following short scrip is exactly as
was recorded by the "Script Learn" function.

<INITFONREC>CIS (local phoenix 9600)
<FON_NUM>468-0285
<FON_LINECTRL>7E1
<FON_BAUD>19200
<FON_TERM>Av/An
<FON_FLAGS>Macro,DTag,Cap,Text,IEMSI,
<ReDials>100
<FON_REDIAL>
<LocalKeys>On
<OPENCAPTURE>cserve.CAP
<SendStr>^M
<WaitStr>Host Name:
<SendStr>cis^M
<WaitStr>User ID:
<SendStr>75120,3306^M
<WaitStr>Password:
<SendStr>your/pwd^M
<WaitStr>r HELp!
<SendStr>rea^M
<WaitStr>e(s) # (or ALL)?!
<SendStr>all^M
<WaitStr>CR> for more !
<SendStr>^M
<WaitStr>CR> for more !
<SendStr>^M
<WaitStr>CR> for more !
<SendStr>^M
<WaitStr>e, REPly or NEXt!
<SendStr>^M
<WaitStr>CR> for more !
<SendStr>^M
<WaitStr>CR> for more !
<SendStr>^M
<WaitStr>e, REPly or NEXt!
<SendStr>^M
<WaitStr> ADDress or HELp!
<SendStr>^M
<WaitStr>ssages? (Y or N)!
<SendStr>n^M
<WaitStr>Enter choice !
<SendStr>go IbmPro^M
<CLOSECAPTURE>
<OPENCAPTURE>ibmpro.CAP
<WaitStr>CR> !
<SendStr>Read New^M
<WaitStr>CR> !
<SendStr>^M
<CLOSECAPTURE>
<WaitStr>Enter choice !
<SendStr>off^M
<WaitStr>Host Name:
<SendStr>off^M
<ENDS>



To begin "Script Learn", I pressed ALT A for <AutoScrGen>.  This macro will
turn on "Script Learn" and prompt you for a filename.  Type in the filename for
the new script.  Next, I pressed ALT D for <PhoneList>, and selected the local
9600 CIS record for dialing.

This segment was written to the script when entering the dialer.

<INITFONREC>CIS (local phoenix 9600)
<FON_NUM>468-0285
<FON_LINECTRL>7E1
<FON_BAUD>19200
<FON_TERM>Av/An
<FON_FLAGS>Macro,DTag,Cap,Text,IEMSI,
<ReDials>100
<FON_REDIAL>
<LocalKeys>On
<OPENCAPTURE>cserve.CAP

The dialer sees we are in "Script Learn" and writes the macros required to
initialize a Fon.Record.  Notice the "Flags" include opening a capture file
upon Dial/Connect.  The "Cap," flag was recorded here, and is responsible for
the "<OpenCapture>cserve.CAP" to be recorded into the script.  Because the
<OpenCapture> macro has been recorded, we want to edit out the "Cap," flag.  If
we leave it in, the capture file will be opened twice, it not be a problem,
except for duplicate time stamps.  It is nice to have a capture file open while
recording in "Script Learn", a capture file provides a good reference later on
when editing the script.

What follows is a script that captures a forum (IBMPRO) to a capture file, and
also checks for "Compuserve Mail" along the way.  I have CIS configured to
announce my mail, and so some decision making is required for the scripts to
operate all the time.  The fastest way for me to read a forum is to capture it
to file 2 or 3 times a week.  I can reply off line.  Since personal mail
announcements are capable of tripping up a script, like the one generated
above, some more complex macros are put to work.


;    We can place comments into our scripts.  ";" is used as a comment
;    character.  Text following ";" is a comment.
   <DispStr>[AttrOff] <ClrWin>
   <DispStr>[BWhi][Blu] <DispText>Intro <DispStr>[AttrOff]
   <DispStr>^M^JQ)uit
   <DispStr>^M^JAny key continues, or wait 10 seconds^M
   <GetKey>10    <if>Q <Goto>@@EndScript


<INITFONREC>CIS (local phoenix 9600)
<FON_NUM>468-0285
<FON_LINECTRL>7E1
<FON_BAUD>19200
<FON_TERM>Av/An
<FON_FLAGS>Macro,DTag,Text,IEMSI,   ; I deleted "Cap," from the flags

<ReDials>100                        ; This macro gives control over how many
                                    ; times to re-dial before giving up.
<FON_REDIAL>
<LocalKeys>On
<OPENCAPTURE>cserve.CAP



; Note: when stacking macros, a space character MUST precede the macro.
<SendStr>^M
<WaitTime>15                        ; 15 seconds to timeout (<WaitStr> only)
<WaitStr>Host Name: <SendStr>cis^M
<WaitStr>User ID: <SendStr>75120,3306^M
<WaitStr>Password: <SendStr>your/pwd^M

;   The following checks for personal messages, "Compuserve Mail".
;   waiting for me. I won't have messages waiting every time I log on to
;   Compuserve. We need a way for the script to make decisions. If there are
;   messages, we can stop and read them, recording them into the already open
;   capture file, if no messages, we want to continue to capture the forum, and
;   log off.

   <Timer0>30                       ; Set a timer to 30 seconds
:@@CheckMail                        ; Label we loop to while checking
   <CheckMdm>CompuServe Mail <if>1 <goto>@@PersonalMail
   <CheckMdm>messages pending <if>1 <goto>@@PersonalMail
   <CheckMdm>SCAn, REAd, <if>1 <goto>@@PersonalMail
   <CheckMdm>Enter choice ! <if>1 <goto>@@CompuserveTop

   <Timer0> <if>1 <Goto>@@CheckMail ; <if>1 while not timed out
;
;  Fall through to the forum on timeout
;
   <SendStr>^M
   <Goto>@@IBMPRO
;
;  Here if we got a hit with <CheckMdm>. <CheckMdm> is not case sensitive.
;
:@@PersonalMail
   <WaitTime>10                     ; New, faster timeout for <WaitStr>
   <OPENCAPTURE>cismail.CAP         ; <WaitStr> falls through on timeout
   <SendStr>Read^M
   <WaitStr># (or ALL)?! <SendStr>all^M

   <Timer0>300          ; 5 minutes till timeout, up this if you are popular
:@@ReadMail
   <CheckMdm>CR> for more ! <if>1 <SendStr>^M
   <CheckMdm>REPly or NEXt! <if>1 <SendStr>Next^M
   <CheckMdm>SCAn, REAd, <if>1 <SendStr>^M
   <CheckMdm>CR> for more ! <if>1 <SendStr>^M
   <CheckMdm>Delete these messages? (Y or N)! <if>1 <goto>@@AfterMail
   <Timer0> <if>1 <goto>@@ReadMail
;
;  Fall through to here on timeout
;
:@@AfterMail
   <SendStr>N^M
   <Timer0>60                       ; Here we use 2 timers in 2 loops
:@@CompuserveTop
:@@ResetTimer1
   <Timer1>10
:@@TenSecondLoop
   <CheckMdm>Enter choice ! <if>1 <goto>@@IBMPRO
   <CheckMdm>Last page ! <if>1 <SendStr>^M
   <Timer1> <if>1 <goto>@@TenSecondLoop
   <SendStr>^M
   <Timer0> <if>1 <goto>@@ResetTimer1

:@@LogOff
   <SendStr>off^M <Delay>5 <SendStr>off^M <Delay>2 <MdmHangup>

:@@IBMPRO
   <CLOSECAPTURE>
   <SendStr>go IbmPro^M <OPENCAPTURE>ibmpro.CAP
   <Delay>7
   <SendStr>Read New^M
   <MdmStill>10

   <CheckMdm>CR> ! <if>1 <SendStr>^M
   <CLOSECAPTURE>
                           ; If you want more forums
                           ; you can un-comment the following line
                          <Goto>@@IBMCOM

   <WaitTime>15
   <WaitStr>Enter choice ! <SendStr>off^M
   <WaitStr>Host Name: <SendStr>off^M
   <MdmHangup>
   <Goto>@@EndScript

:@@IBMCOM
   <SendStr>go IBMCOM^M <OPENCAPTURE>ibmCOM.CAP
   <Delay>7
   <SendStr>Read New^M
   <MdmStill>10

   <CheckMdm>CR> ! <if>1 <SendStr>^M

   <CLOSECAPTURE>
   <WaitTime>15

   <WaitStr>Enter choice ! <SendStr>off^M
   <WaitStr>Host Name: <SendStr>off^M
   <MdmHangup>

:@@EndScript

<ENDS>

{-DATA_AREA-}
{-TEXT_START-}Intro
┌────── Compuserve Forums ───────────────────────────────────────────────────┐
│                                                                            │
│  This script calls Compuserve, and captures forums to their respectively   │
│  named capture files. The script demonstrates some basic decision making   │
│  using <CheckMdm> and <Timer0> macros. The script is capable of capturing  │
│  personal mail, if any, and continue on to get the forums.                 │
│  The script will pause for 10 seconds after it has logged onto Compuserve. │
│  This pause is where we detect for any "Compuserve Mail" that may be       │
│  waiting for us.                                                           │
│                                                                            │
│   You will need to edit the script where the login process sends your      │
│   CIS ID  and  CIS password.                                               │
└────────────────────────────────────────────────────────────────────────────┘
{-TEXT_END-}



         :Label
            Labels begin with ':' character
            Labels are used as arguments to the <goto> macro

         <goto> label
            "Label"  can be defined any where in the script file, either
            before or after a <goto> macro.

         <if> condition
            AceComm supports a set of conditional macros. Conditional
            macros return either 1 or 0.

         {-DATA_AREA-}
            Defines a data area

         {-TEXT_START-}
          see examples
         {-TEXT_END-}


            {-Data_ Area-} will be covered extensively next month with
            many complex scripts as well as complete documentation.

            The following script introduces some un-documented script
            language features.


            Follows is a basic script which includes a data area.

         ------------snip here -------------
         <ClearWindow>
         <DispText>Intro
         <DispText>Ask_Continue
         :GetKey
         <GetKey>
            <if>Y
            <goto>Dial
            <if>N
            <goto>End
            <goto>GetKey
         :Dial
         <INITFONREC>ACECOMM Support BBS      ; Initialize a FON RECORD
         <FON_NUM>1-602-846-2940            ;
         <FON_BAUD>19200                    ;
         <FON_TERM>Av/An                    ;
         <FON_REDIAL>                       ; Go into re dial mode
         <DispText>Connect
         <WAITSTR> your name:
         <GetDCD>                           ; <WaitStr> may have timed
            <if>1                           ; out
            <goto>Connect
            <goto>Dial
         :Connect
         <SENDSTR>Michael Phelps^M
         <SENDSTR>Y^M
         <SENDSTR>password^M
         <WAITSTR>Select:
         <SENDSTR>ff
         :End
         <ENDS>


         {-DATA_AREA-}
         {-TEXT_START-}Intro
         -- Generic Log On Script --
         {-TEXT_END-}
         {-TEXT_START-}Ask_Continue
         Continue (Y/n) {-TEXT_END-}

         {-TEXT_START-}Connect
         -- Connect --
         {-TEXT_END-}
         ------------snip here -------------



------------snip here -------------
    <Wait_To_HHMM>15:45                ; wait till 3:45 pm
    <INITFONREC>A.C.E. Software Support; call Init FON function
    <FON_NUM>1-602-846-2940            ; set phone number
    <FON_BAUD>2400
    <FON_TERM>Av/An                    ; video type for script
    <FON_REDIAL>                       ; call redial function
    <WAITSTR>it a few moments.

    <SENDSTR>^M
    <WAITSTR>s your name:
    <SENDSTR>Michael Phelps^M
    <WAITSTR>ael Phelps [Y,n]?
    <SENDSTR>^M
    <WAITSTR>Password:
    <SENDSTR>melissa_jean^M
    <WAITSTR>Select:
    <SENDSTR>f^M
    <SENDSTR>d^Mz^Mace170.arj^M
    <RecvZmo>
    <WAITSTR>Select:
    <SENDSTR>gyn^M
    <ENDS>
    <ENDS>
------------snip here -------------


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;          --  Mini Host Mode Script for AceComm v1.85  --
;;
;;  Note:  Labels are CaSe sensitive
;;         :@@Start    will not be found if accessed as <goto>@@start
;;                                                          => S <=
;;         Labels begin with ':' character, and start at the beginning
;;         of a line
;;         Each label must be a unique character string
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;         Back up here after caller
;
;;;;;;;;;;
:@@Start
;;;;;;;;;;

<HostEcho>OFF <SendStr>ATE0^M       ; We do not want the modem to echo
                                    ; as AceComm handles this when we turn
                                    ; <Host_Echo>ON
<AutoAnswer>On

   <LocalKeys>Off
   <SetDTR>Off <Delay>1 <SetDTR>On  ; This will hang up most modems
   <SetLCtrl>8n1                    ; new macro for 1.85
   <Delay>2                         ; This will help wait for modem response
                                    ; strings to clear

   <DispText>TellAutoAnswer         ; Display text defined in Data Area
                                    ; %P (port), %B (connect speed)
   <DispStr>Port %P Setup for %B^M^JWaiting for caller^M^J
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Top of wait for caller loop
;
;;;;;;;;;;
:@@Wait
;;;;;;;;;;
   <DispStr>^M[CURTIME]^M

   <GetDCD> <if>1 <goto>@@DCDLogIn  ; Here is where we detect a caller
   <GetKey>5 <if>L <goto>@@LogIn   ; Allow local keyboard login
            <if>C <DOSShell_>
            <if>ALT+J <DOSShell_>
            <if>R <RunProg>list.com
            <if>E <goto>@@END       ; Provide a clean exit
   <goto>@@Wait                     ; 'Wait' is a case sensitive label...
;
; Here if carrier detected
;
:@@DCDLogIn
;
; Clear screen,  Send ansi video request,  Display banner
;
   <Var0>0                          ; See if we can set this to 1 with
                                    ; our ansi video detection scheme.
   <Timer0>3                        ; Init Timer0 and set 3 second timeout
   <RawCapture>On                   ; Allow all caller's input in wait buffer
                                    ; ESC[6n  is video request (detect ansi)
   <SendStr>^L^[[6n^MMini Host Script for AceComm v1.85^M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Loop here for 3 second maximum waiting for answer to Ansi detect sequence
;
:@@DetectAnsi
   <CheckMdm>[ <if>1 <goto>@@AnsiDetected     ; Remote will answer with
   <Timer0> <if>1 <goto>@@DetectAnsi           ; ESC[n;nR  if ANSI capable
   <RawCapture>Off
   <HostEcho>ON                                ; HostEcho translates CR
                                               ; into CR,LF pair
   <DispStr>^M^JAnsi video request un-answered ; Ansi video request
   <goto>@@Welcome
:@@AnsiDetected
   <Var0>1
   <RawCapture>Off
   <HostEcho>ON                     ; HostEcho translated CR into CR,LF pair
   <SendStr> ^M^JAnsi video detected!

:@@Welcome
   <Var0> <if>1 <DispStr>^M^J[Whi]Connected at [Blink][Bold][Red]%C[AttrOff]
   <Var0> <if>0 <DispStr>^M^JConnected at  %C

;
; Caller names are pre registered into an ascii comment file "USERLIST.LST"
; Sample Line:  Michael Phelps,acecomm,9
; where "acecomm" is the password
;
;;;;;;;;;;;
:@@LogIn
;;;;;;;;;;;
   <Var0> <if>1 <DispStr>[Whi]
   <DispStr> ^M^JEnter your first and last name:
   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
   <DispStr>^M^J%FN not found!

   <DispStr> ^M^JEnter your first and last name:
   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd
   <DispStr>^M^J%FN not found!

   <DispStr> ^M^JEnter your first and last name:
   <GetStr>26 <FindUser> <if>1 <goto>@@GetPwd

   <DispStr>^L^M^JYour name has not been registered in the user file, you may
   <DispStr>^M^Joptionaly leave a short not for the SysOp, pleas include your
   <DispStr>^M^Jfirst and last name along with a password.
   <DispStr>^M^J^M^JWould you like to leave a note? (Y)es/(N)o
:@@1
   <GetKey>60
   <if>Y <goto>@@LogOffComment
   <if>N <goto>@@OFF
   <Goto>@@1
:@@GetPwd
   <DispStr> ^M^JEnter password:
   <GetStr>26 <UserPwd> <if>1 <goto>@@MainMenu
   <DispStr> ^M^JEnter password:
   <GetStr>26 <UserPwd> <if>1 <goto>@@MainMenu
   <DispStr> ^M^JEnter password:
   <GetStr>26 <UserPwd> <if>0 <goto>@@OFF
                              <goto>@@MainMenu
:@@LogOffComment
   <HostEcho>ON                     ; This needs be on for message, even local
   <GetMsg> <Goto>@@OFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Top of main menu loop
;
:@@MainMenu
   <DispStr>^L
   <Var0> <if>1 <DispStr>[Bblu][Whi][Bold][Cle]
   <DispStr>                 --  AceComm Mini Host Script for AceComm v1.85 --
   <Var0> <if>1 <DispStr>[AttrOff]
   <DispStr>^M^J^M^J

   <Var0> <if>1 <DispText>AnsiMainMenu
   <Var0> <if>0 <DispText>MainMenu

:@@MainMenuKey
   <GetKey>60                       ; <GetKey> times out every n seconds
   <if>1 <goto>@@BBS                ; so if the caller drops carrier, we
   <if>C <goto>@@Comment            ; can fall through to the carrier check
   <if>Y <goto>@@YourMail           ; below. Default timeout is 60 if param.
   <if>R <goto>@@ReadMail
   <if>F <goto>@@Files
   <if>G <goto>@@OFF
   <if>^M <goto>@@MainMenu          ; ^M for <CR>

   ; Note: any invalid key press while off line,
   ;       results in '<goto>'@@Start
   <GetDCD> <if>0 <goto>@@NoDCD     ; Detect if caller hung up
   <goto>@@MainMenuKey              ; Wait for a key press we can process

:@@BBS
   <ChgDir>BBS <RunProg>BBS %P %C <ChgDir>[DIR_START]
   <goto>@@MainMenu
:@@Comment
   <HostEcho>ON                     ; This needs be on for message, even local
   <GetMsg> <Goto>@@MainMenu
:@@YourMail
   <HostEcho>ON                     ; This needs be on for message, even local
   <YourMsg> <Goto>@@MainMenu
:@@ReadMail
   <HostEcho>ON                     ; This needs be on for message, even local
   <ReadMsg> <Goto>@@MainMenu
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Files Menu
;
:@@Files
   <DispStr>^M^L^M
   <Var0> <if>1 <DispStr>[BWhi][Blu]
   <DispStr>^M^J  ┌────────────────────────────────┐
   <DispStr>^M^J  │ (Z)modem  AceComm version 1.85 │
   <DispStr>^M^J  │ (D)ownload file                │
   <DispStr>^M^J  │ (U)load file                   │
   <DispStr>^M^J  │ (L)ist file titles             │
   <DispStr>^M^J  │ (R)aw directory list           │
   <DispStr>^M^J  │ (M)ain menu                    │
   <DispStr>^M^J  │ (G)ood bye                     │
   <DispStr>^M^J  └────────────────────────────────┘
   <Var0> <if>1 <DispStr>[AttrOff]
   <DispStr>^M^J^M^JSelect:

:@@FilesKey
   <GetKey>60
   <if>Z <goto>@@DownloadAceComm
   <if>D <goto>@@DownloadFile
   <if>U <goto>@@UploadFile
   <if>L <goto>@@ListFiles
   <if>R <goto>@@RawDir
   <if>M <goto>@@MainMenu
   <if>G <goto>@@OFF
   <if>^M <goto>@@Files
   <GetDCD> <if>0 <goto>@@NoDCD     ; Detect if caller hung up
   <goto>@@FilesKey

:@@DownloadAceComm
   <SendZmo@>@ACECOMM.LST
   <goto>@@Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Provide Download Options
;
:@@DownloadFile
   <ChgDir>[DIR_DNLDS]              ; So files displayed with
                                    ; <DirList>[DIR_DNLDS]\*.* can be found
   <DispStr> ^M^JEnter filename: <GetStr>15 <DispStr>^M

:@@ChooseDnProtocol
   <DispStr>^M^JZ)modem
   <DispStr>^M^JY)modem  / Ymodem G
   <DispStr>^M^JX)modem
   <GetKey>60
   <if>Z <goto>@@ZmodemSend
   <if>Y <goto>@@YmodemSend
   <if>X <goto>@@XmodemSend
   <if>^M <goto>@@RetFiles

   <GetDCD> <if>0 <goto>@@NoDCD     ; Detect if caller hung up
   <goto>@@ChooseDnProtocol

:@@ZmodemSend
   <SendZmo>%FN
   <ChgDir>[DIR_START] <goto>@@Files
:@@YmodemSend
   <SendYmo1K>%FN
:@@RetFiles
   <ChgDir>[DIR_START] <goto>@@Files
:@@XmodemSend
   <SendXmo>%FN
   <ChgDir>[DIR_START] <goto>@@Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Provide Upload Options
;
:@@UploadFile
:@@ChooseUpProtocol
   <DispStr>^M^JZ)modem
   <DispStr>^M^JG)Ymodem G
   <DispStr>^M^JY)modem
   <DispStr>^M^JX)modem
   <GetKey>60
   <if>Z <goto>@@ZmodemRecv
   <if>G <goto>@@YmodemGRecv
   <if>Y <goto>@@YmodemRecv
   <if>X <goto>@@XmodemRecv
   <if>^M <goto>@@Files             ; <CR> alone aborts

   <GetDCD> <if>0 <goto>@@NoDCD     ; Detect if caller hung up
   <goto>@@ChooseUpProtocol

:@@ZmodemRecv
   <DispStr>^M^JBegin Zmodem Upload^M
   <RecvZmo>
   <goto>@@Files
:@@YmodemGRecv
   <DispStr>^M^JBegin Ymodem G Upload^M
   <RecvYmoG>                             ; Note: the sending Ymodem sends
   <goto>@@Files                          ; filename in the first data block
:@@YmodemRecv
   <DispStr>^M^JBegin Ymodem Upload^M
   <RecvYmo1k>
   <goto>@@Files
:@@XmodemRecv
   <DispStr> ^M^JEnter filename: <GetStr>15 <DispStr>^M
   <RecvXmo>%FN
   <goto>@@Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Display ready made files list to caller
;
:@@ListFiles
   <SendAscii>files.lst
   <DispStr>^M^JPress CR
   <GetKey>60
   <goto>@@Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Display directory to caller
;
:@@RawDir
   <DispStr>^M^J
   <DirList>[DIR_DNLDS]\*.*
   <DispStr>^M^JPress CR
   <GetKey>60
   <goto>@@Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Here when caller selects G)o option
;
:@@NoDCD
   <DispStr>^M^JCarrier not detected, Restarting script!
   <DispStr>^M^JLocal mode, you can navigate the script by making correct
   <DispStr>^M^Jkey press for the menu options.
:@@OFF
   <DispStr>^M^L^MGood bye [USR_NAM]!
   <DispStr>^M^JYour on line time [DCDTIME]^M^J

   <MdmHangUp>
   AutoAnswer>OFF                   ; Need this to recycle properly

   <Delay>2                         ; This will help wait for modem response
                                    ; strings to clear
   <goto>@@Start
;
; Here when local keyboard E)nd option is selected
;
:@@END
   <AutoAnswer>OFF
   <ClrWin>
<EndS>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
{-DATA_AREA-}
{-TEXT_START-}TellAutoAnswer

             [37;44m --  AceComm Mini Host Script for AceComm v1.85 -- [0m

   AceComm was first release on May 15 of 1993.  Since then the
   script/macro language has evolved slowly.  This is a very simple script
   allowing pre registered log in.  The macro language will continue to
   evolve making possible a more elaborate host script.  For a powerful
   Host mode, take a look at the AutoAnswer setup area.  People are using
   AceComm as a front-end, and calling their favorite BBS software from the
   AutoAnswer macros.  Sample setups for external BBS software are included
   in the manual.
                                           [34;47m┌──────────────────┐[0m
                                           [34;47m│ L)ocal log in    │[0m
                                           [34;47m│ C)ommand Shell   │[0m
                                           [34;47m│ R)un LIST.COM    │[0m
                                           [34;47m│ E)nd script      │[0m
                                           [34;47m└──────────────────┘[0m
{-TEXT_END-}

{-TEXT_START-}AnsiMainMenu

                   [34;47m┌─────────────────────┐[0m
                   [34;47m│ 1) Through to BBS   │[0m
                   [34;47m│ 2) Download (*.REP) │[0m
                   [34;47m│ 3) Uplopad (*.QWK)  │[0m
                   [34;47m│ C)omment to SysOp   │[0m
                   [34;47m│ Y)our mail          │[0m
                   [34;47m│ R)ead all messages  │[0m
                   [34;47m│ F)iles              │[0m
                   [34;47m│ G)o (hang up)       │[0m
                   [34;47m└─────────────────────┘[0m
 Enter Choice: {-TEXT_END-}
{-TEXT_START-}MainMenu

                   ┌─────────────────────┐
                   │ 1) Through to BBS   │
                   │ 2) Download (*.REP) │
                   │ 3) Uplopad (*.QWK)  │
                   │ C)omment to SysOp   │
                   │ Y)our mail          │
                   │ R)ead all messages  │
                   │ F)iles              │
                   │ G)o (hang up)       │
                   └─────────────────────┘
 Enter Choice: {-TEXT_END-}


=============================================================
4/7/94 * Release version 1.86
=============================================================
- The file request function was commented out.  This prevented AceComm from
  searching for a .REQ file and to make the call.
=============================================================
4/4/94 * Release version 1.85
=============================================================
Here is the largest upgrade since AceComm's debut on May 15 of 1993.

- Script processor has been re-worked, is capable of processing
  complex macro functions. A MINIHOST.SCR demonstrates much of the macro
  language. The macro language has now evolved to include intelligent
  decision making macros. See the CIS.SCR and MINIHOST.SCR for demos.
- Some macro text has changed. This requires a completlety new install from
  everyone.
- DPRM.EXE was fixed. It had a bug where the data pointer was not being saved
  correctly. DPRM is the utility that backs up the PRM file to an ascii
  definition file.

- Point mailer services have been either re-written or changed. The EMSI
  protocol has been re-written. Mailer services are capable of running in
  simple mailer front end mode.
-  The scheduler services allow a greater degree of control over a auto answer
   mode. The schedules now control the "Auto Answer Setup" services, which
   can only be accessed during a schedule which includes ",Host" attribute
   flag.
- New Point mail support menus have been added for automated event driven
  mailer/host modes. AceComm can serve as a complete front end to any BBS.
- FBL output ".NOD" files are no longer supported as Nodelist files. FBL will
  instead be re-written to support the creation of "mini" nodelist files.
- "Boss Data" areas allow user created system definitions to be retained
  permanently in the ACE.PRM file.

  The hooks for running a BBS software are numerous, and capable of passing
  port rate %B, connect speed %C, port %P.
- The Dialer sees some new "Phone Number Modifiers" menu.
- Fon files can be printed to ascii text or PRN from inside the "Import" menu.
- A new "CALL.LOG" does a 1 liner for each number called, with on line time
  down to the second.

- The configurations area "PRM-data" has bee re-organized. Always an effort
  is made to group similar data into more intuitive surroundings.
- Many little bug fixes, one larger one where the upload files selections could
  lock up if the user chose a particular sequence of events.  This due to a
  menu not getting closed properly.



=============================================================
1/16/94 * Release version 1.81
=============================================================
- Point mail functions using BOSS info were needlessly aborting
  when NODELIST or NLIST.IDX files were not available.
- Auto Log on was scanning the first 10 fields and ignoring the last
  six.
=============================================================
12/26/93 * Release version 1.8
=============================================================

Update made for 1.8 include:

  AceComm is written in 100% assembly language.  This is how the EXE file
  remains so small.  The movement for menu data to a separate binary file is in
  the workings, this will allow for memory savings, multiple language support,
  and to a limited degree, user customizing.  AceComm for MS-Windows is coming
  along nicely, and like the DOS version, written in assembly language.  The
  GUI version featuring RIPscrip video will be available to registered users by
  March of 94.  Those wishing to see pre-release copies can get them.  Int 14h
  and FOSSIL support will be seen in a 1.86 release very soon.  I have them
  implemented, haven't enabled them yet.  I may tie an interrupt handler to
  buffer int 14h, as it's dog gone slow using BIOS the way they are.

- Fixed dialer timeout to recycle where values 60 seconds and greater would not
  timeout, but require a modem response in order to recycle.

- Zmodem receiver file management functions in a more expected manor.  User
  aborts would end with the file time not being updated to the file time sent
  by the remote.  This caused a later resume to be renamed instead.  ACE.DOC
  covers the logic behind file management used with Acecomm's internal zmodem.

- Script/macro processor gets attention every release, this area is very robust
  now.  The scrip language continues to inch along, what is here is very solid.

- AutoScrGen does a better overall job and can handle systems using HOT keys.

- Macro language evolves with each release.  The macro language and scripts
  capability will see the most attention from version to version.

- Terminal emulations saw some minor additions.  These always get added to and
  tweaked every version.

- Event schedules are more on line aware, and there is an enable flag where the
  schedules can be turned off completely.

- ACTL (assemble CTL) and DPRM (dis-assemble PRM) utilities are more data
  aware.  The PRM file can be almost 100% cloned across versions.

- LISTFILE prompting for batch uploads will now search the directory for all
  LISTFILES and prompt the user "Send from this file Y/n)" before defaulting to
  the menu.  This allows multiple LISTFILES be ready to go, and used on the
  fly, greatly improving the fast up load selection process.

- Point mail services saw a lot of work and those using pre-release versions
  are getting good results with the scheduler and <PollBoss> macros.

- MDMI.EXE is included for the first time with this release.  MoDeM Install
  will read from an ascii format file of modem definitions.  The file can grow,
  MDMI.EXE will be able to use it as it grows.

- Mouse handler was re-written.  Mouse support is much more flexible.  Double
  click in terminal mode brings up the TopBar menu.

- KTS key definitions somehow got behind KBD definitions.  KTS are back to
  getting first crack at a key press.

- Xmodem was not opening file for 1.75, but dumping to the screen.  1.76 fixed
  this.  Both Xmodem and Ymodem (G) saw a lot of attention.  Mostly YmodemG.
  This protocol is not using file management that the Zmodem uses.

- Fixed a problem where writing the AceComm prompt to the DOS prompt when
  shelling to command processor, AceComm would overwrite any environment
  variables that were defined after the prompt.  This will be a noticeable fix
  for many.  This caused AceComm to lose it's ability to run programs if any
  PATH statement followed the prompt string.

- A trend for menus to become user definable is in the works.  It just seems to
  evolve this way since I wanted to move all the text out to an edit able area
  anyway.


You can get more help by contacting the
author Michael Phelps at the following

AceComm Software Support
------------------------
- VOICE 602-846-4563 6 days 12-7pm MST

- BBS   602-846-2940 24 hours

- COMPUSERVE User ID 75120,3306

- FIDONET ADDRESS 1:114/35

- FIDONET COMM echo

- FIDONET ACECOMM echo
I distribute the "ACECOMM" echo to
USA NODES, until it makes BACKBONE.

- Write to: MGP Software (AceComm)          * New address takes affect with
            BOX 301 C  Route 3                AceComm 1.85 release. Phone
            Detroit Lakes, MN 56501 USA       lines will remain the same until
                                              we actualy move later this year.

┌─────────How to Register AceComm──────────────┬──────────────────────────────┐
│  Send $45.00 US to: MGP Software (AceComm)   │ Credit Card orders           │
│                     Box 301 C  Route 3       │ PSL part # 10805             │
│                     Detroit Lakes, MN 56501  │ 800-242-4775 or 713-524-6394 │
│─────────Life Time Registration───────────────┴──────────────────────────────┤
│                                                                             │
│  Registration gets you 1 FREE year of upgrades mailed to you at no charge.  │
│  Registration renewal each year for just 30%, renew at the end of a year,   │
│  or any time in the future. You will receive upgrades in the mail complete  │
│  with disks, manuals, news letters, BBS, voice and Compuserve support, and  │
│  continued expert software design.                                          │
│                                                                             │
│   AceComm (tm) for DOS and Windows, "Pace Setting Communications Software"  │
├─────────Price Plans─────────────────────────────────────────────────────────┤
│                                       Each plan includes 1 year of FREE     │
│ (prices already include shipping)     upgrades mailed to you. Upgrades      │
│ 1) Registration           $45.00      include: 3.5 disk, manuals, news      │
│ 2) 10-30 copies            29.00      letters, unlimited software support.  │
│ 3) Site license           870.00                                            │
│ 4) Registration renewal    13.50  (for another year of disks,manuals,news)  │
│ 5) Competitive upgrade     26.00  (requires reg. disk from competitor)      │
│ 6) Senior discount 20%     36.00  (plan 1, 60 yrs, copy of drivers license) │
│                                                                             │
└───see the order forms and REGISTER.DOC for complete plan descriptions───────┘

AceComm Registration is required to use the software past it's 30 day trial
period.
Registration renewals buy you another year of free upgrades upgrades complete
with 3.5 disk, manuals, news letters for 1 year, BBS access.

Your registration will buy you the following:
---------------------------------------------
- A license to use the AceComm software package.

- Free upgrades complete with 3.5 disk, manuals, news letters for 1 year.

- Eligibility for registration renewal at any time good for another year at
  just %30 current purchase price.
  Registration renewal need not to be right away, any time in the future.

- Access to the AceComm support BBS.  Here the latest code is always available
  to registered users, this in addition to the upgrades in the mail, sample
  scripts, tips from power users, ACECOMM message forum, the latest support
  files.  The AceComm BBS provides yet another form of software support.


Register by Credit Card
-----------------------
As a service to AceComm customers who want to register by credit card,
arrangements have been made with the Public Software Library (PSL) to handle
all credit card registrations.  PSL accepts Visa, MasterCard, American Express,
and Discover Card.

Non-U.S.  residents are encouraged to register by credit card.  In many cases,
paying by credit card will be easier than acquiring U.S.  funds.

PSL will take the order information and forward it to the AceComm author, MGP
Programming Services & Michael G Phelps for processing and shipping.




                    AceComm & Utilities (Tm)
                         Version  1.86
                          ORDER FORM



FROM:

     Name: ____________________________________________________

  Address: ____________________________________________________

     City: ____________________________________________________

    State: ___________________________ Zip Code: ______________

  Country: ___________________________ Phone: _________________





                                   TO:
                                       MGP Software (AceComm)
                                       Box 301 C  Route 3
                                       Detroit Lakes, MN 56501

          AceComm & Utilities (Tm)  Version  1.86

                          ORDER FORM

Telephone   (602) 846-4563     MGP Software (AceComm)
AceComm BBS (602) 846-2940     Box 301 C  Route 3
CompuServe  75120,3306         Detroit Lakes, MN 56501
===========================================================================
    Individual Registration Licensing use of AceComm and Utilities
===========================================================================
Registration            Includes:    1 year of FREE Upgrades mailed to you.
Registration Renewal    Includes:    1 year of FREE Upgrades mailed to you.

1 year of FREE Upgrades Include:     3.5 disk, Manuals, News letters,
                                     Good software support (see CONTACT.DOC)
-------------------(prices already include shipping)-----------------------

1 Registration................$45.00   x number of copies Total $______ ___

Registration Renewal..........$13.50   x number of copies Total $______ ___

10-30 Registrations           $29.00   x number of copies Total $______ ___

Site license                 $870.00   (call)             Total $______ ___

Senior discount 20%...........$36.00   x number of copies Total $______ ___
(60 yrs, copy of drivers license)

Competitive upgrade...........$26.00   x number of copies Total $______ ___
(requires reg. disk from competitor)
(must be a recent release, 18 months)
================================================================
                                            TOTAL PRODUCTS      $______ ___

                     Sales tax for Arizona residents 6.75%      $______ ___

                                               TOTAL ORDER      $______ ___

             For payment by non-USA BANK CHECK, add $40.00      $______ ___

                  Overseas add $9.00/order  for shipping        $______ ___

Payment method:                             TOTAL ENCLOSED      $______ ___
           ( ) Check           ( ) Cash
           ( ) Money order
           ( ) Credit card (See instructions below)
Diskette format (choose one)  5.25" disk (__)  3.5" disk (__)


                    AceComm & Utilities (Tm)
                         Version  1.86
          AceComm Software Credit Card Registration Form
                    PSL Part number 10805




     The PSL part number for AceComm is: 10805

     Credit card registrations may be made by the following methods:

     -- Phone PSL at:
        800-242-4775  (Toll free) To register by credit card.
        713-524-6394  To  register  by  credit  card  and  for   order
                      inquiries.

     Be sure to have BOTH the credit card form at the end of this file
     PLUS the order form in the file ORDERFRM.DOC  available  to  give
     order information to PSL.

     ACCURACY in phone ordering is important!  Misspellings can result
     in delays or an erroneous registration.

     -- FAX PSL at 713-524-6398

     -- Email PSL at CompuServe user id 71355,470

     -- Write PSL at:
        The Public (Software) Library
        P.O. Box 35705
        Houston, TX 77235-5705
        USA
        PSL Part number 10805

     For FAX, email, or mail to PSL, send BOTH the credit card form at
     the   end   of  this  file  PLUS  the  order  form  in  the  file
     ORDERFRM.DOC.

     The Public Software Library also  maintains  a  vast  library  of
     shareware  and  public  domain  programs  and  prints  a  monthly
     magazine announcing new releases and general software news.

    AceComm & Utilities (Tm)  Version  1.86

     Please complete this form AND the regular order form in the file
     ORDERFRM.DOC and send BOTH DIRECTLY to:


                                        The Public (Software) Library

                                        P.O. Box 35705
                                        Houston, TX 77235-5705
                                        USA
       PSL Part number 10805            Date ________________________

         Name:  _____________________________________________________

      Address:  _____________________________________________________

                _____________________________________________________

                _____________________________________________________

     Card #:  ______________________________  Exp. Date:  ___________

     Signature of card holder: ______________________________________


  ( ) MasterCard  ( ) Visa  ( ) American Express  ( ) Discover Card


┌───────────────────────────────────────────────────────────────────────────┐
│                 AceComm (tm)   version 1.86   4/7/94                      │
│                                                                           │
│                 Copyright 1991-1994 by MGP Software                       │
├───────────────────────────────────────────────────────────────────────────┤
│                                                                           │
│ AceComm was first released in May of 1993.  The AceComm source code is    │
│ written in 100% assembly language, using TASM versions 2, and 3.1.  A     │
│ Windows version of AceComm is well under way, and should be released by   │
│ July of 94.  All of the generic code written for AceComm DOS version is   │
│ available to the Windows version.  This allows the two versions to evolve │
│ together, and operate much the same.                                      │
│                                                                           │
│ Latest code: Registered users can always upgrade any time using the       │
│              AceComm support BBS.                                         │
│                                                                           │
│ News letter: A news letter is sent to registed AceComm users. The news    │
│              letter contains example scripts, macro stacks, program       │
│              progress information. The news letter provides an efficient  │
│              means for users of AceComm software to be kept up to date.   │
│                                                                           │
└───────────────────────────────────────────────────────────────────────────┘
